Was ist der Unterschied zwischen einer cer-, pvk- und pfx-Datei?

203

Was ist der Unterschied zwischen einer cer-, pvk- und pfx-Datei? Welche Dateien behalte ich und welche soll ich meinen Gegenparteien geben?

Jonathan Allen
quelle
Auch [1] , [2] , [3]
Pacerier

Antworten:

142

Windows verwendet die Erweiterung .cer für ein X.509-Zertifikat. Diese können in "binär" (ASN.1 DER) oder mit Base-64 codiert sein und eine Kopf- und Fußzeile (PEM) haben; Windows erkennt entweder. Um die Integrität eines Zertifikats zu überprüfen, müssen Sie seine Signatur mit dem öffentlichen Schlüssel des Ausstellers überprüfen. Dies ist wiederum ein anderes Zertifikat.

Windows verwendet .pfx für eine PKCS # 12-Datei. Diese Datei kann eine Vielzahl von kryptografischen Informationen enthalten, darunter Zertifikate, Zertifikatketten, Stammberechtigungszertifikate und private Schlüssel. Der Inhalt kann kryptografisch geschützt werden (mit Kennwörtern), um private Schlüssel privat zu halten und die Integrität von Stammzertifikaten zu gewährleisten.

Windows verwendet .pvk für eine private Schlüsseldatei. Ich bin nicht sicher, welcher Standard (falls vorhanden) Windows für diese folgt. Hoffentlich handelt es sich um PKCS # 8-codierte Schlüssel. Emmanuel Bourg berichtet, dass dies ein proprietäres Format ist. Einige Dokumentationen sind verfügbar.

Sie sollten Ihren privaten Schlüssel niemals offenlegen. Diese sind in PFX- und PvK-Dateien enthalten.

Im Allgemeinen tauschen Sie Ihr Zertifikat (.cer) und die Zertifikate aller Zwischenaussteller (dh die Zertifikate aller Ihrer Zertifizierungsstellen mit Ausnahme der Stammzertifizierungsstelle) nur mit anderen Parteien aus.

erickson
quelle
7
PVK-Dateien befinden sich nicht im PKCS # 8, sondern sind ein proprietäres Format. Siehe drh-consultancy.demon.co.uk/pvk.html
Emmanuel Bourg
Suchen Sie nach dem Dienstprogramm pvk2pfx.exe in den Windows SDKs
BozoJoe
@erickson, was bringt es, .pvk zu erfinden? Reicht .pfx nicht aus?
Pacerier
@ Pacerier Ja, .pfx reicht aus. Ich bin nicht sicher, was der Sinn von .pvk war; Ich kann nur vermuten, dass es in Unwissenheit erfunden wurde.
Erickson
55

In der Windows-Plattform werden diese Dateitypen für Zertifikatinformationen verwendet. Wird normalerweise für SSL-Zertifikate und Public Key-Infrastruktur (X.509) verwendet.

  • CER-Dateien: In der CER-Datei wird das X.509-Zertifikat gespeichert. Wird normalerweise für die SSL-Zertifizierung verwendet, um die Sicherheit von Webservern zu überprüfen und zu identifizieren. Die Datei enthält Informationen zum Zertifikatsinhaber und zum öffentlichen Schlüssel. Eine CER-Datei kann binär (ASN.1 DER) oder mit Base-64 mit Kopf- und Fußzeile (PEM) codiert sein. Windows erkennt eines dieser Layouts.
  • PVK-Dateien: Steht für Private Key. Windows verwendet PVK-Dateien, um private Schlüssel für die Codesignatur in verschiedenen Microsoft-Produkten zu speichern. PVK ist ein proprietäres Format.
  • PFX-Dateien Personal Exchange Format ist eine PKCS12-Datei. Diese enthält eine Vielzahl von kryptografischen Informationen, z. B. Zertifikate, Stammberechtigungszertifikate, Zertifikatketten und private Schlüssel. Es ist kryptografisch mit Passwörtern geschützt, um private Schlüssel privat zu halten und die Integrität der Stammzertifikate zu gewährleisten. Die PFX-Datei wird auch in verschiedenen Microsoft-Produkten wie IIS verwendet.

Weitere Informationen finden Sie unter: Zertifikatdateien: .Cer x .Pvk x .Pfx

rahul_pratap
quelle
4
Cer-Dateien: .... "Datei enthält Informationen zum Zertifikatsinhaber sowie zu öffentlichen und privaten Zertifikatschlüsseln" ... ist falsch. Wie erickson in seiner Antwort betonte: Es enthält nur Informationen über den öffentlichen Schlüssel. Eine CER-Datei mit privaten und öffentlichen Schlüsseln wäre nutzlos.
thor_hayek
1
Das ist falsch. Die .Cer-Datei enthält keine privaten Schlüssel. Bitte verbessern Sie Ihre Antwort.
ANewGuyInTown
36

Hier sind meine persönlichen, sehr komprimierten Notizen, soweit dieses Thema mich derzeit betrifft, für alle, die interessiert sind:

  • Sowohl PKCS12 als auch PEM können ganze Zertifikatsketten speichern: öffentliche Schlüssel, private Schlüssel und Stammzertifikate .
  • .pfx == .p12 == " PKCS12 "
    • vollständig verschlüsselt
  • .pem == .cer == .cert == " PEM "
    • Base-64 (String) codiertes X509-Zertifikat (Binär) mit Kopf- und Fußzeile
      • base-64 ist im Grunde nur eine Zeichenfolge von "A-Za-z0-9 + /", die verwendet wird, um 0-63, 6 Binärbits gleichzeitig, nacheinander darzustellen, manchmal mit 1 oder 2 "=" Zeichen am Anfang Ende, wenn es Reste gibt ("=" als "Füller / Müll / Ignorieren / Wegwerfen" Zeichen)
      • Die Kopf- und Fußzeile ist so etwas wie "----- BEGIN CERTIFICATE -----" und "----- END CERTIFICATE -----" oder "----- BEGIN ENCRYPTED PRIVATE KEY --- - "und" ----- END ENCRYPTED PRIVATE KEY ----- "
    • Windows erkennt .cer und .cert als Zertifizierungsdateien
  • .jks == " Java Key Store "
    • Nur ein Java-spezifisches Dateiformat, das die API verwendet
      • .p12- und .pfx-Dateien können auch mit der JKS-API verwendet werden
  • " Trust Stores " enthalten öffentliche, vertrauenswürdige Stammzertifikate (CA) , während " Identity / Key Stores " private Identitätszertifikate enthalten. In Bezug auf die Dateien sind sie jedoch gleich.
Andrew
quelle
Wo ist .pvk definiert?
Zwcloud
@zwcloud Ich gab, was ich damals wusste. Die anderen Antworten geben das.
Andrew
18

Ich bin vor nicht allzu langer Zeit auf so etwas gestoßen ... schau es dir auf msdn an (siehe die erste Antwort)

Zusammenfassend:

.cer - Zertifikat im X.509-Standardformat gespeichert. Dieses Zertifikat enthält Informationen zum Eigentümer des Zertifikats sowie öffentliche und private Schlüssel.

.pvk - Dateien werden zum Speichern privater Schlüssel für die Codesignatur verwendet. Sie können auch ein Zertifikat erstellen, das auf der privaten .pvk-Schlüsseldatei basiert.

.pfx - steht für Personal Exchange Format. Es wird verwendet, um öffentliche und private Objekte in einer einzigen Datei auszutauschen. Eine pfx-Datei kann aus einer CER-Datei erstellt werden. Kann auch zum Erstellen eines Software Publisher-Zertifikats verwendet werden .

Ich habe die Informationen von der Seite basierend auf dem Vorschlag aus den Kommentaren zusammengefasst.

Ryan Ferretti
quelle
2
Ich würde empfehlen, den verlinkten Inhalt zusätzlich zum Link selbst zu zitieren oder zusammenzufassen. Auf diese Weise geben Sie beide die richtige Anerkennung und schützen uns vor dem Verlust der Informationen, wenn MS das nächste Mal ihre Website neu gestaltet.
Jonathan Allen
Ich habe diesen Link gesehen, aber ich beantworte die Frage nicht vollständig.
Jonathan Allen
15
Außerdem sind einige der Informationen im Link falsch. Beispielsweise können Sie keinen privaten Schlüssel aus einem Zertifikat extrahieren. Offensichtlich.
erickson
Zum obigen Kommentar geht es nicht um Extraktion. Es ist einfach nicht sinnvoll, private Schlüssel in CER-Dateien zu haben. Eine .cer-Datei soll mit der Außenwelt geteilt werden, daher enthält sie nur den öffentlichen Schlüssel.
Rajiv