Ich habe OpenSSL x64 unter Windows 7, das ich von openssl-for-windows unter Google Code heruntergeladen habe . Ich versuche zu rennen:
openssl pkcs12 -export -in "path.p12" -out "newfile.pem"
aber ich bekomme einen Fehler.
unable to load private key
Wie extrahiere ich das Zertifikat in PEM mit OpenSSL aus dem PKCS # 12-Speicher?
Antworten:
Versuchen:
Danach haben Sie:
Verwenden Sie Folgendes, um das Zertifikat und den Schlüssel in derselben Datei abzulegen
Wenn Sie das PKCS # 12-Kennwort direkt über die Befehlszeile eingeben müssen (z. B. ein Skript), fügen Sie einfach Folgendes hinzu
-passin pass:${PASSWORD}
:quelle
openssl pkcs12 -in path.p12 -out newfile.pem
Sie müssen nur ein Passwort eingeben. Sie können dies in derselben Befehlszeile mit der folgenden Syntax tun:
Sie werden dann aufgefordert, ein Kennwort einzugeben, um den privaten Schlüssel in Ihrer Ausgabedatei zu verschlüsseln. Fügen Sie die Option "Knoten" in die obige Zeile ein, wenn Sie den privaten Schlüssel unverschlüsselt (Klartext) exportieren möchten:
Weitere Informationen: http://www.openssl.org/docs/apps/pkcs12.html
quelle
Wenn Sie Python verwenden können, ist es noch einfacher, wenn Sie das
pyopenssl
Modul haben. Hier ist es:quelle
file
und nicht zu öffnenopen
? Ich möchte es nur verstehen, da ich es in Zukunft verwenden werde (um meine Lösung zu vereinfachen, indem ich openssh als Befehl aufrufe)open("push.p12", 'rb').read()
.with open("push.pem", "wb") as fobj: fobj.write(crypto.dump_certificate(crypto.FILETYPE_PEM, p12.get_certificate()))
schreiben : um das Zertifikat undwith open("push.key", "wb") as fobj: fobj.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, p12.get_privatekey()))
den Schlüssel zu schreiben .Ich hatte eine PFX-Datei und musste eine KEY-Datei für NGINX erstellen, also habe ich Folgendes getan:
Dann musste ich die KEY-Datei bearbeiten und den gesamten Inhalt bis zu entfernen
-----BEGIN PRIVATE KEY-----
. Danach akzeptierte NGINX die KEY-Datei.quelle
Wenn Sie eine PEM-Datei ohne Kennwort benötigen, können Sie diese Lösung verwenden.
Kopieren Sie einfach den privaten Schlüssel und das Zertifikat, fügen Sie ihn in dieselbe Datei ein und speichern Sie ihn als .pem.
Die Datei sieht folgendermaßen aus:
Nur so konnte ich Zertifikate für HTTPS auf Cisco-Geräte hochladen.
quelle