Vollständiger Leitfaden zu Zertifikats- und Schlüsseldateierweiterungen: PEM, CRT, DER, PFX und mehr
Wenn Sie jemals einen Webserver (wie Nginx oder Apache) eingerichtet, SSH-Schlüssel verwaltet oder mit digitalen Signaturen gearbeitet haben, sind Sie wahrscheinlich auf eine verwirrende Anzahl von Dateierweiterungen gestoßen: .pem, .crt, .cer, .der, .p12, .pfx, .key, .csr und mehr.
Sind sie alle gleich? Kann man sie einfach umbenennen? Dieser Leitfaden wird diese Erweiterungen entmystifizieren, erklären, was sich darin befindet, und Ihnen zeigen, wie Sie effektiv mit ihnen arbeiten.
Warum gibt es so viele Erweiterungen?
Die Verwirrung rührt von zwei Hauptfaktoren her:
- Der Standard (X.509): Dies ist der internationale Standard für Public-Key-Zertifikate.
- Die Kodierung: Wie die Zertifikatsdaten tatsächlich in der Datei gespeichert sind (Base64-ASCII vs. Binär).
Im Wesentlichen haben verschiedene Plattformen (Windows vs. Linux), verschiedene Server (IIS vs. Nginx) und verschiedene Protokolle (SSL/TLS vs. SSH vs. PGP) historisch gesehen unterschiedliche Wege bevorzugt, dieselben zugrunde liegenden kryptografischen Informationen zu speichern.
Schnellreferenztabelle: Häufige Zertifikats- und Schlüsselerweiterungen
| Erweiterung | Format | Beschreibung | Häufige Verwendung |
|---|---|---|---|
.pem |
ASCII (Base64) | Privacy Enhanced Mail | Webserver (Nginx, Apache), SSL/TLS-Zertifikate, private Schlüssel |
.crt, .cer |
ASCII oder Binär | Zertifikat | Nur öffentliche Zertifikate (keine privaten Schlüssel) |
.der |
Binär | Distinguished Encoding Rules | Java-Plattformen, Windows (oft für spezifische CA-Zertifikate verwendet) |
.key |
ASCII oder Binär | Privater Schlüssel | Der passende private Schlüssel für ein öffentliches Zertifikat |
.csr |
ASCII (Base64) | Certificate Signing Request | Die Datei, die an eine CA gesendet wird, um ein signiertes Zertifikat anzufordern |
.p12, .pfx |
Binär | PKCS#12-Archiv | Bündelung eines Zertifikats und seines privaten Schlüssels in einer passwortgeschützten Datei |
.p7b, .p7c |
ASCII (Base64) | PKCS#7 / CMS | Exportieren von Zertifikatsketten (keine privaten Schlüssel) |
.asc, .sig, .gpg |
ASCII oder Binär | PGP / OpenPGP | Digitale Signaturen, verschlüsselte E-Mails und Software-Verifizierung |
1. X.509 Zertifikats-Kodierungen (Die "Großen Drei")
PEM (Privacy Enhanced Mail) — .pem, .crt, .cer, .key
Dies ist das häufigste Format, dem Sie auf Linux- und Webservern begegnen werden. Es ist ein ASCII-basiertes (Text-) Format, das mit einem Header wie -----BEGIN CERTIFICATE----- beginnt und mit -----END CERTIFICATE----- endet. Die dazwischen liegenden Daten sind Base64-kodiert.
- Vorteile: Menschlich lesbar, einfach in Konfigurationsdateien zu kopieren/einzufügen.
- Verwendung der Erweiterungen: Obwohl
.pemder Standard ist, verwenden viele Leute.crtoder.cerfür öffentliche Zertifikate und.keyfür private Schlüssel, auch wenn sie technisch gesehen alle im PEM-Format vorliegen.
DER (Distinguished Encoding Rules) — .der, .cer
Dies ist die binäre Version einer PEM-Datei. Wenn Sie sie in einem Texteditor öffnen, sehen Sie "Zeichensalat".
- Vorteile: Kompakter als PEM.
- Wo man es findet: Häufig in Java-Umgebungen, Windows-Zertifikatsexporten und einigen Hardware-Sicherheitsmodulen (HSMs).
PKCS#12 (Personal Information Exchange) — .p12, .pfx
Im Gegensatz zu PEM und DER, die normalerweise ein einzelnes Zertifikat oder einen Schlüssel enthalten, ist PKCS#12 ein Archivformat. Es kann ein Zertifikat, seinen privaten Schlüssel und die gesamte CA-Kette in einer einzigen, passwortgeschützten Datei speichern.
- Wo man es findet: Standard für Windows (IIS), Java (KeyStore) und macOS-Schlüsselbund.
- Hinweis:
.pfxist die alte Microsoft-Erweiterung, während.p12der neuere plattformübergreifende Standard ist; sie sind jedoch funktional identisch.
2. Anfrage- und Metadaten-Erweiterungen
CSR (Certificate Signing Request) — .csr
Dies ist kein Zertifikat an sich. Es ist eine Anfrage, die Sie auf Ihrem Server erstellen (mit Ihrem öffentlichen Schlüssel und Organisationsinformationen) und an eine Zertifizierungsstelle (wie Let's Encrypt, DigiCert) senden. Diese signiert die Anfrage und sendet eine .crt- oder .pem-Datei zurück.
PKCS#7 / CMS — .p7b, .p7c
Dieses Format wird hauptsächlich verwendet, um "Zertifikatsketten" zu teilen. Es kann Ihr Zertifikat plus die Zwischen- und Root-CA-Zertifikate enthalten. Es enthält niemals einen privaten Schlüssel. Sie sehen dies oft beim Herunterladen von Zertifikaten von einer CA im "Windows"- oder "IIS"-Format.
3. PGP- und GPG-Erweiterungen
Wenn Sie Software-Downloads verifizieren (wie den Linux-Kernel oder eine beliebte Bibliothek), sehen Sie:
.asc: Eine PGP-Datei mit ASCII-Hülle (textbasierte Signatur)..sig,.gpg: Binäre PGP-Signaturen oder -Schlüssel..pub: Wird oft verwendet, um einen öffentlichen PGP-Schlüssel zu kennzeichnen.
4. Wie man diese Dateien öffnet und verifiziert
Auf Linux / macOS / Windows (mit OpenSSL)
OpenSSL ist das Schweizer Taschenmesser für diese Dateien. Hier sind einige gängige Befehle:
Um eine PEM-Datei (öffentliches Zertifikat) anzuzeigen:
openssl x509 -in certificate.crt -text -noout
Um eine DER-Datei (binär) anzuzeigen:
openssl x509 -in certificate.der -inform der -text -noout
Um eine PKCS#12 (.p12 / .pfx) Datei anzuzeigen:
openssl pkcs12 -info -in key-and-cert.p12
5. Konvertieren zwischen Formaten
Plattformen erfordern oft spezifische Formate. So konvertieren Sie sie:
PEM nach DER:
openssl x509 -in cert.pem -outform der -out cert.der
DER nach PEM:
openssl x509 -in cert.der -inform der -outform pem -out cert.pem
PEM nach PFX (.p12): (Erfordert das Kombinieren von Zertifikat und privatem Schlüssel)
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile CA-chain.crt
Häufig gestellte Fragen (FAQ)
F: Kann ich eine .pem-Datei einfach in .crt umbenennen?
A: In vielen Fällen ja. Die meisten Webserver (wie Nginx) suchen nach dem "BEGIN CERTIFICATE"-Header innerhalb der Datei und nicht nach der Erweiterung. Wenn die Plattform jedoch eine binäre .der-Datei erwartet und Sie eine umbenannte .pem-Datei bereitstellen, wird es fehlschlagen.
F: Was ist der Unterschied zwischen .p12 und .pfx?
A: Es gibt keinen funktionalen Unterschied. .pfx war die proprietäre Erweiterung von Microsoft, während .p12 der Branchenstandard (PKCS#12) ist. Beide dienen als passwortgeschützte Container für Zertifikate und private Schlüssel.
F: Warum kann ich meinen privaten Schlüssel in einer .p7b-Datei nicht sehen?
A: Weil der PKCS#7-Standard (verwendet von .p7b) speziell für die Verteilung von Zertifikaten entwickelt wurde und das Speichern von privaten Schlüsseln nicht unterstützt. Wenn Sie einen privaten Schlüssel bündeln müssen, müssen Sie PKCS#12 (.p12) verwenden.
F: Ist eine .key-Datei immer ein privater Schlüssel?
A: Meistens, aber nicht immer. Während .key die konventionelle Erweiterung für private Schlüssel ist, verwenden einige Anbieter sie für öffentliche Schlüssel oder sogar Lizenzdateien. Überprüfen Sie immer den Inhalt (z. B. -----BEGIN PRIVATE KEY-----).
Verwandte Tools auf Tool3M
- Hash-Generator: Überprüfen Sie die Integrität Ihrer heruntergeladenen Zertifikatsdateien mit SHA-256.
- SSL/TLS-Zertifikate-Leitfaden: Erfahren Sie mehr über die zugrunde liegenden Sicherheitsprotokolle.