it-swarm.com.de

PKCS # 12-Zertifikat mit OpenSSL in PEM konvertieren

Ich habe OpenSSL x64 unter Windows 7, das ich unter 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?

179
Dean MacGregor

Versuchen:

openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys
openssl pkcs12 -in path.p12 -out newfile.key.pem -nocerts -nodes

Danach haben Sie:

  • zertifikat in newfile.crt.pem
  • privater Schlüssel in newfile.key.pem

Verwenden Sie Folgendes, um das Zertifikat und den Schlüssel in derselben Datei abzulegen

openssl pkcs12 -in path.p12 -out newfile.pem

Wenn Sie das PKCS # 12-Kennwort direkt über die Befehlszeile (z. B. ein Skript) eingeben müssen, fügen Sie einfach -passin pass:${PASSWORD} Hinzu:

openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys -passin 'pass:[email protected]'
436
kmx

Sie müssen nur ein Passwort eingeben. Sie können dies in derselben Befehlszeile mit der folgenden Syntax tun:

openssl pkcs12 -export -in "path.p12" -out "newfile.pem" -passin pass:[password]

Sie werden dann aufgefordert, ein Kennwort einzugeben, um den privaten Schlüssel in Ihrer Ausgabedatei zu verschlüsseln. Fügen Sie die Option "node" in die obige Zeile ein, wenn Sie den privaten Schlüssel unverschlüsselt (Klartext) exportieren möchten:

openssl pkcs12 -export -in "path.p12" -out "newfile.pem" -passin pass:[password] -nodes

Weitere Informationen: http://www.openssl.org/docs/apps/pkcs12.html

18
Colin

Wenn Sie Python verwenden können, ist es noch einfacher, wenn Sie das pyopenssl -Modul haben. Hier ist es:

from OpenSSL import crypto

# May require "" for empty password depending on version

with open("Push.p12", "rb") as file:
    p12 = crypto.load_pkcs12(file.read(), "my_passphrase")

# PEM formatted private key
print crypto.dump_privatekey(crypto.FILETYPE_PEM, p12.get_privatekey())

# PEM formatted certificate
print crypto.dump_certificate(crypto.FILETYPE_PEM, p12.get_certificate())
14
KVISH

Ich hatte eine PFX-Datei und musste eine KEY-Datei für NGINX erstellen.

openssl pkcs12 -in file.pfx -out file.key -nocerts -nodes

Dann musste ich die KEY-Datei bearbeiten und alle Inhalte entfernen, bis -----BEGIN PRIVATE KEY-----. Danach akzeptierte NGINX die KEY-Datei.

2
KTCO