Konvertieren Sie .pfx in .cer

155

Ist es möglich, eine PFX-Datei (Personal Information Exchange) in eine CER-Datei (Security Certificate) zu konvertieren? Ist ein .cer nicht irgendwie in eine .pfx eingebettet, es sei denn, ich irre mich? Ich würde es gerne nach Möglichkeit extrahieren.

Mark Carpenter
quelle

Antworten:

90

Ich glaube, der einfache Weg besteht darin, es mithilfe des Zertifikatmanagers in der Windows-Verwaltungskonsole zu importieren und dann zu exportieren.

Andrew Cox
quelle
5
Ich habe versucht, dies zu tun, aber wenn ich den privaten Schlüssel exportieren wähle, wird die Option .cer (DER codiert) deaktiviert. und midletsigner Dienstprogramm brauchen sowieso provatekey ..
Jigar Joshi
3
Sie müssen das Kontrollkästchen aktivieren, wenn Sie es importieren, das besagt "Markieren Sie diesen Schlüssel als exportierbar"
Andrew Cox
11
So gelangen Sie zum Zertifikat-Manager in Windows: msdn.microsoft.com/en-us/library/ms788967.aspx
James White
12
Der einfachere Weg, den Windows-Zertifikatmanager zu öffnen, besteht darin, an der Eingabeaufforderung "certmgr.msc" einzugeben.
Jan Derk
@ AndrewCox, Es gibt jedoch einen Unterschied hinter den Kulissen zwischen dem Markieren als exportierbar und dem Nicht-Markieren als solches. Oder ist es einfach eine UI-Option?
Pacerier
211

PFX-Dateien sind PKCS # 12 Syntax Standard- Bundles für den Austausch persönlicher Informationen . Sie können eine beliebige Anzahl privater Schlüssel mit zugehörigen X.509-Zertifikaten und eine Zertifizierungsstellenkette (festgelegte Zertifikate) enthalten.

Wenn Sie Client-Zertifikate extrahieren möchten, können Sie das PKCS12-Tool von OpenSSL verwenden .

openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts

Der obige Befehl gibt Zertifikate im PEM-Format aus. Die Dateierweiterung ".crt" wird sowohl von macOS als auch von Window verwaltet.

Sie erwähnen die Erweiterung ".cer" in der Frage, die üblicherweise für die DER-codierten Dateien verwendet wird. Eine binäre Codierung. Probieren Sie zuerst die Datei ".crt" aus. Wenn sie nicht akzeptiert wird, können Sie sie einfach von PEM nach DER konvertieren:

openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer
Berk D. Demir
quelle
9
+1 zur Erläuterung der Datei sowie zur Bereitstellung der Befehle.
Joshua Drake
"Mac-Überprüfungsfehler: ungültiges Passwort?" als ich es versuchte. Ich kenne keine Passwörter, ich habe nur die Datei, die mein Anbieter bereitgestellt hat.
Brian Knoblauch
1
Es scheint, als würde das Löschen von "-nokeys" funktionieren, wenn Sie versuchen, ein Zertifikat mit seinen privaten Schlüsseln zu konvertieren, beispielsweise zur Verwendung mit Fiddler
Gert van den Berg
@Berk, hat Windows cmd neben OpenSSL eine Möglichkeit, dies zu tun?
Pacerier
45

Wenn Sie in PowerShell arbeiten, können Sie unter Verwendung einer pfx-Datei InputBundle.pfx Folgendes verwenden , um eine DER-codierte (binäre) Zertifikatdatei OutputCert.der zu erstellen :

Get-PfxCertificate -FilePath InputBundle.pfx | 
Export-Certificate -FilePath OutputCert.der -Type CERT

Newline wurde aus Gründen der Übersichtlichkeit hinzugefügt, aber Sie können dies natürlich alles in einer einzigen Zeile haben.

Wenn Sie das Zertifikat im ASCII / Base64-codierten PEM-Format benötigen, können Sie zusätzliche Schritte ausführen, wie an anderer Stelle dokumentiert, z. B.: /superuser/351548/windows-integrated-utility-to-convert -der-to-pem

Wenn Sie in ein anderes Format zu exportieren müssen als DER - codiert, können Sie das ändern -TypeParameter für Export-Zertifikat die Typen von .NET unterstützt zu verwenden, wie in gesehen help Export-Certificate -Detailed:

-Type <CertType>
    Specifies the type of output file for the certificate export as follows. 
     -- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates. 
     -- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate. 
     -- P7B: A PKCS#7 file format which can contain one or more certificates.
Ian Gallagher
quelle
Das Export-Zertifikat ist jedoch nur für einige Versionen wie Win 8.1 und Server 2012 R2 verfügbar. Wenn Sie in einer anderen Version wie Win 7 sind, dann kein Glück!
Deep-B
1
Es sollte in Server 2012 und Windows 8.0 ( technet.microsoft.com/en-us/library/hh848628(v=wps.620).aspx ) vorhanden sein, aber ein guter Punkt zu Windows 7 und so weiter!
Ian Gallagher
@ IanGallagher, Wie ist dies mit der OpenSSL-Option zu vergleichen?
Pacerier
Dies ist viel bequemer, wenn Sie OpenSSL nicht installieren möchten!
Leonardo Herrera
25

Ich wollte eine Methode hinzufügen, die ich für die einfachste von allen halte.

  1. Klicken Sie einfach mit der rechten Maustaste auf die pfx-Datei, klicken Sie auf "Installieren", folgen Sie dem Assistenten und fügen Sie sie einem Geschäft hinzu (ich habe sie dem persönlichen Geschäft hinzugefügt).

  2. Geben Sie im Startmenü certmgr.msc ein und wechseln Sie zum CertManager-Programm.

  3. Suchen Sie Ihr pfx-Zertifikat (Registerkarten oben sind die verschiedenen Geschäfte), klicken Sie auf die Schaltfläche Exportieren und folgen Sie dem Assistenten (es gibt eine Option zum Exportieren als .CER).

Im Wesentlichen funktioniert es genauso wie Andrews Antwort, vermeidet jedoch die Verwendung der Windows-Verwaltungskonsole (geht direkt zum Import / Export über).

kingPuppy
quelle
Nicht viel schneller, da Sie certmgr.msc noch öffnen müssten, um es zu exportieren ....
Pacerier
0
openssl rsa -in f.pem -inform PEM -out f.der -outform DER
JakeGould
quelle