siehe auch: Zugehörigkeiten verifizieren (PEM/DER)
https://wikipedia.org/wiki/PKCS_12
Das PKCS #12 Format hat die Dateiendungen .pfx oder .p12
OpenSSL Dokumentation: https://openssl.org/docs/
-nodes, d.h. die Ausgabe ist unverschlüsselt, man kann die Option weglassen, um eine verschlüsselte Ausgabe zu erhalten-nodes ist neu in OpenSSL 3.0 und ersetzt die nun deprecated Option -nodes, für ältere OpenSSL Versionen einfach die alte Option verwendenclcerts, -cacerts, -chainPFX-Datei in eine PEM-Datei konvertieren, die sowohl das Zertifikat als auch den privaten Schlüssel enthält
> openssl pkcs12 -in filename.pfx -out filename.pem -nodes
Zertifikat und privaten Schlüssel trennen
> openssl x509 -in filename.pem -out certificate.pem > openssl rsa -in filename.pem -out key.pem
Zertifikat aus einer PFX-Datei extrahieren:
> openssl pkcs12 -in filename.pfx -nodes -nokeys -out certificate.key
Alternative, bei der keine Bag Attributes ausgegeben werden
> openssl pkcs12 -in filename.pfx -nodes -nokeys | openssl x509 -out certificate.pem
Privater Schlüssel aus einer PFX-Datei extrahieren:
> openssl pkcs12 -in filename.pfx -nodes -nocerts -out filename.key
Alternative, bei der keine Bag Attributes ausgegeben werden
> openssl pkcs12 -in filename.pfx -nodes -nocerts | openssl rsa -out key.pem
#!/bin/bash #------------------------------------------------------------------------------# # # entpackt eine PFX-Datei zu einer PEM-Datei im DER-Format # #------------------------------------------------------------------------------# # openssl pkcs12 -in www.domain.de.pfx -out www.domain.de.pem -nodes # openssl x509 -in www.domain.de.pem -noout -text # openssl x509 -in www.domain.de.pem -out server-cert.pem # openssl rsa -in www.domain.de.pem -out server-key.pem if [ -r "${1}" ] ; then PFXDATEI="${1}" PEM_NAME="${1%.*}" openssl pkcs12 -in ${PFXDATEI} -out ${PEM_NAME}.pem -nodes && openssl x509 -in ${PEM_NAME}.pem -noout -text if [ -s ${PEM_NAME}.pem ] ; then openssl x509 -in ${PEM_NAME}.pem -out server-cert.pem openssl rsa -in ${PEM_NAME}.pem -out server-key.pem ls -rtlha *.pem else echo "PEM-Datei konnte nicht erstellt werden." fi else echo "${0} www.domain.de.pfx" fi
> PFX-PKCS12_zu_DER-PEM.sh www.domain.de.pfx
Enter Import Password:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
...
> openssl pkcs12 -export -out filename.p12 -inkey filename.key -in filename.crt -certfile intermediate.filename.crt > openssl pkcs12 -info -in filename.p12