Konvertieren Sie das pfx-Format in p12


119

Ich muss ein .pfxFormatzertifikat (von Windows MMC) nach .p12 exportieren, um es in einer anderen Anwendung zu verwenden. Ich kann keinen Weg finden, dies zu tun. Kann jemand eine Methode vorschlagen?

Antworten:


202

.p12und .pfxsind beide PKCS # 12-Dateien. Vermisse ich etwas

Haben Sie versucht, die exportierte .pfxDatei in eine .p12Erweiterung umzubenennen?


9
Sie wundern sich, warum es sich um zwei verschiedene Dateierweiterungen handelt, wenn sie unter der Haube wirklich dasselbe sind.
BrainSlugs83

28
Der Grund, warum es zwei Dateierweiterungen gibt, ist historisch. PFX war eine Microsoft-Erweiterung, während P12 die Netscape-Erweiterung war. Beide Formate wurden jetzt so angepasst, dass sie identisch sind. Dies bedeutet, dass Entwickler den Namespace .NET System.Security.Cryptography.X509Certificates verwenden können, um mit beiden zu arbeiten. Sehen Sie hier für weitere Informationen.
SnapShot

6
Die Dateinamenerweiterung für PKCS # 12-Dateien lautet ".p12" oder ".pfx". Microsofts "PFX" wurde heftig kritisiert, eines der komplexesten kryptografischen Protokolle zu sein. PKCS # 12 ist der Nachfolger von Microsofts "PFX". PKCS # 12 gehört zur Familie der Standards, die als Public-Key Cryptography Standards (PKCS) bezeichnet werden und von RSA Laboratories veröffentlicht werden.
AKS

1
Umbenennen funktioniert nicht immer, weil. Wenn Sie beispielsweise SoapUI verwenden und eine bidirektionale Authentifizierung testen, schlägt dies fehl. p12 & pfx haben eine Geschichte zurück zu Netscape & IE. Sie sind fast die gleichen, aber nicht identischen Dateien. So können einige Apps sowohl unabhängig von der Erweiterung verstehen als auch andere benötigen ein 100% kompatibles gültiges p12 wie SoapUI
M.Hefny

10

Ich hatte Probleme mit einer PFX-Datei mit openconnect. Das Umbenennen hat das Problem nicht gelöst. Ich habe Keytool verwendet, um es in .p12 zu konvertieren, und es hat funktioniert.

keytool -importkeystore -destkeystore new.p12 -deststoretype pkcs12 -srckeystore original.pfx

In meinem Fall musste das Passwort für die neue Datei (new.p12) mit dem Passwort für die PFX-Datei übereinstimmen.


2
Nicht funktioniert, auch wenn ich für beide das gleiche Passwort verwendet habe. Fehler "Keytool-Fehler: java.io.IOException: Ungültiges Keystore-Format"
John Smith

5

Wenn Sie nach einem schnellen und manuellen Prozess mit der Benutzeroberfläche suchen. Ich benutze immer Mozilla Firefox, um von PFX nach P12 zu konvertieren. Importieren Sie zuerst das Zertifikat in den Firefox-Browser (Optionen> Datenschutz und Sicherheit> Zertifikate anzeigen ...> Importieren ...). Führen Sie nach der Installation den Export durch, um die P12-Datei zu erstellen, indem Sie den Zertifikatsnamen im Zertifikat-Manager auswählen und dann auf Sichern ... klicken. Geben Sie den Dateinamen und dann das Kennwort ein.


4

Dies ist eher eine Fortsetzung von Jglouies Antwort.

Wenn Sie openssl verwenden, um das PKCS # 12-Zertifikat in öffentliche / private PEM-Schlüssel zu konvertieren, muss die Datei nicht umbenannt werden. Angenommen, die Datei heißt cert.pfx, erstellen die folgenden drei Befehle einen öffentlichen PEM-Schlüssel und einen verschlüsselten privaten PEM-Schlüssel:

openssl pkcs12 -in cert.pfx     -out cert.pem     -nodes -nokeys
openssl pkcs12 -in cert.pfx     -out cert_key.pem -nodes -nocerts
openssl rsa    -in cert_key.pem -out cert_key.pem -des3

Die ersten beiden Befehle fordern möglicherweise ein Importkennwort an. Dies ist ein Kennwort, das mit der PKCS # 12-Datei bereitgestellt wurde.

Mit dem dritten Befehl können Sie die Verschlüsselungspassphrase für das Zertifikat angeben. Dies geben Sie ein, wenn Sie das Zertifikat verwenden.


Der erste Befehl überschreibt den zweiten. Führen Sie daher möglicherweise nur die Schritte 2 und 3 aus. Zu Ihrer Information: Für Leser ist Des3 die Standardverschlüsselung für den privaten Schlüssel.
goodguys_activate

1

Führen Sie diesen Befehl aus, um die .certDatei in Folgendes zu ändern .p12:

openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt 

Wo server.keyist der Serverschlüssel und server.certist ein CA-Ausstellungszertifikat oder eine selbstsignierte Zertifikatdatei.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.