Zertifikatsformate einfach erklärt: PEM, DER, PKCS#7 und PFX

Wer ein Zertifikat installiert, stößt schnell auf ein Durcheinander von Dateiendungen: .pem, .crt, .cer, .der, .key, .p7b, .pfx, .p12. Mal will ein Server zwei Dateien, mal eine einzige mit Passwort, und mal lehnt er eine Datei ab, obwohl das Zertifikat darin korrekt ist. Dahinter stecken nur wenige Formate. Dieser Artikel erklärt die zwei Kodierungen DER und PEM, die Container PKCS#7 und PKCS#12, zeigt die Umwandlung mit OpenSSL und sagt, welcher Server welches Format erwartet.

Zwei Kodierungen: DER und PEM

Ein Zertifikat ist eine Datenstruktur, die in der Sprache ASN.1 beschrieben und binär als DER (Distinguished Encoding Rules) gespeichert wird; den Inhalt erklärt X.509-Zertifikat einfach erklärt. DER-Dateien sind kompakt, aber nicht lesbar und lassen sich schlecht per E-Mail oder in Konfigurationsdateien weitergeben.

Deshalb gibt es PEM: Die DER-Daten werden mit Base64 in druckbare Zeichen umgewandelt, in Zeilen zu 64 Zeichen umbrochen und zwischen eine Kopf- und eine Fußzeile gesetzt (geregelt in RFC 7468):

-----BEGIN CERTIFICATE-----
MIIDljCCAxygAwIBAgISBp...
-----END CERTIFICATE-----

Base64 macht aus je 3 Byte 4 Zeichen, die Datei wird also etwa ein Drittel größer. Beim echten Zertifikat von techuni.de (November 2026) sind es 918 Byte als DER und 1.298 Byte als PEM, rund 41 Prozent mehr, weil noch Zeilenumbrüche und die beiden Rahmenzeilen hinzukommen. Zur Umrechnung von Datenmengen siehe Bit und Byte, zu Zeichensätzen Zeichenkodierung.

Balkendiagramm: Das Zertifikat von techuni.de ist als DER 918 Byte groß, als PEM 1.298 Byte, rund 41 Prozent mehr.
Größe desselben Zertifikats in DER und PEM.

Die Dateiendungen und was dahintersteckt

Die Endung verrät leider nicht zuverlässig, was in einer Datei steckt. Üblich ist:

  • .pem: Text im PEM-Format; kann ein Zertifikat, eine ganze Kette, einen Schlüssel oder alles zusammen enthalten.
  • .crt und .cer: ein Zertifikat, entweder als PEM oder als DER. Unter Windows sind .cer-Dateien oft DER.
  • .der: ein Zertifikat in binärer DER-Form.
  • .key: ein privater Schlüssel, meist PEM.
  • .csr: ein Zertifikatsantrag; siehe Schlüsselpaar und CSR erstellen.
  • .p7b und .p7c: ein PKCS#7-Container mit Zertifikaten, ohne Schlüssel.
  • .pfx und .p12: ein PKCS#12-Container mit Zertifikat, privatem Schlüssel und meist der Kette, durch ein Passwort geschützt.

Im Zweifel hilft ein Blick in die Datei: Beginnt sie mit „BEGIN“, ist es PEM, und die Kopfzeile nennt den Inhalt, etwa CERTIFICATE, PRIVATE KEY, ENCRYPTED PRIVATE KEY oder CERTIFICATE REQUEST. Ältere Schlüsseldateien tragen Kopfzeilen wie RSA PRIVATE KEY oder EC PRIVATE KEY.

Tabelle: DER ist binär mit einem Zertifikat, PEM ist Base64-Text, PKCS#7 bündelt Zertifikate ohne Schlüssel, PKCS#12 enthält Zertifikat, Schlüssel und Kette mit Passwort.
Die vier Zertifikatsformate mit typischen Dateiendungen.

PKCS#7: Zertifikatsketten ohne Schlüssel

PKCS#7 ist eigentlich ein Format für signierte und verschlüsselte Nachrichten; heute heißt es Cryptographic Message Syntax. Als Datei mit der Endung .p7b dient es vor allem dazu, mehrere Zertifikate zu bündeln, etwa Endzertifikat und Zwischenzertifikate. Einen privaten Schlüssel kann es nicht enthalten. Windows-Server und manche Java-Anwendungen erwarten Ketten in diesem Format, und manche CAs liefern ihre Zertifikate so aus. Wie Ketten aufgebaut sind, erklärt Zertifikatskette einfach erklärt.

PKCS#12 und PFX: Zertifikat und Schlüssel in einer Datei

PKCS#12 (RFC 7292) packt Zertifikat, privaten Schlüssel und Kette in eine einzige, mit einem Passwort verschlüsselte Datei. Die Endungen .pfx (aus der Windows-Welt) und .p12 bezeichnen dasselbe Format. Es eignet sich, um ein Zertifikat samt Schlüssel von einem Rechner auf einen anderen zu übertragen, und ist das übliche Importformat unter Windows, in der macOS-Schlüsselbundverwaltung, für Java-Keystores und für E-Mail-Zertifikate.

OpenSSL 3 verschlüsselt PKCS#12-Dateien standardmäßig mit AES-256 und dem Schlüsselableitungsverfahren PBKDF2. Sehr alte Systeme kennen nur die früheren, schwachen Verfahren; für sie gibt es die Option -legacy, die man nur einsetzen sollte, wenn es nicht anders geht. Das Passwort gehört nie in dieselbe E-Mail wie die Datei, am besten wird es über einen anderen Weg mitgeteilt; zu guten Passwörtern siehe sichere Passwörter.

Formate umwandeln mit OpenSSL

Die wichtigsten Umwandlungen, getestet mit OpenSSL 3:

# PEM nach DER und zurück
openssl x509 -in zertifikat.pem -outform DER -out zertifikat.der
openssl x509 -in zertifikat.der -inform DER -out zertifikat.pem

# Schlüssel, Zertifikat und Kette zu PKCS#12 (fragt nach einem Passwort)
openssl pkcs12 -export -out server.pfx -inkey server.key -in zertifikat.pem -certfile kette.pem

# PKCS#12 zerlegen: Zertifikat und Schlüssel getrennt
openssl pkcs12 -in server.pfx -clcerts -nokeys -out zertifikat.pem
openssl pkcs12 -in server.pfx -nocerts -noenc -out server.key

# PKCS#7 in PEM umwandeln (bei binärer Datei zusätzlich -inform DER)
openssl pkcs7 -in kette.p7b -print_certs -out kette.pem

Die Option -noenc schreibt den Schlüssel unverschlüsselt; die Datei muss danach gut geschützt werden. Den Inhalt einer PKCS#12-Datei zeigt openssl pkcs12 -in server.pfx -info -noout an, ohne etwas zu speichern.

Fünf Zeilen mit OpenSSL-Befehlen: PEM nach DER, DER nach PEM, PEM nach PKCS#12, PKCS#12 zurück nach PEM und PKCS#7 nach PEM.
Die wichtigsten Umwandlungen mit OpenSSL 3 (Dateinamen gekürzt).

Welches Format braucht welcher Server?

  • nginx und Apache: zwei PEM-Dateien, die vollständige Kette (bei Let’s Encrypt fullchain.pem) und den privaten Schlüssel (privkey.pem).
  • Windows-Server mit IIS: eine PFX-Datei, die in den Zertifikatspeicher importiert wird.
  • Java-Anwendungen wie Tomcat: ein Keystore; seit Java 9 ist PKCS#12 der Standard, das ältere Format JKS ist überholt.
  • Router, Firewalls und Geräte im Heimnetz: je nach Hersteller PEM oder PFX; die Anleitung nennt das Format. Zu Routern siehe wie funktioniert ein Router.
  • E-Mail-Programme: PKCS#12, um ein persönliches Zertifikat mit Schlüssel zu importieren.

Häufige Fragen

Ist eine .crt-Datei etwas anderes als eine .pem-Datei? Oft nicht. Beide enthalten häufig dasselbe PEM-Zertifikat; nur die Endung unterscheidet sich. Entscheidend ist der Inhalt.

Warum meldet mein Server „no start line“? Er erwartet PEM, bekommt aber eine binäre DER-Datei oder eine Datei mit falscher Kopfzeile. Umwandeln mit openssl x509 -inform DER hilft.

Kann ich aus einem Zertifikat den privaten Schlüssel gewinnen? Nein. Ein Zertifikat enthält nur den öffentlichen Schlüssel. Fehlt der private Schlüssel, muss ein neues Zertifikat beantragt werden.

Ist PEM unsicherer als DER? Nein. Beides ist derselbe Inhalt in anderer Darstellung. Geschützt werden muss nur der private Schlüssel, egal in welchem Format.

Fazit

Fast alle Zertifikatsdateien beruhen auf zwei Kodierungen und zwei Containern: DER ist binär, PEM ist dasselbe als Base64-Text, PKCS#7 bündelt Zertifikate, PKCS#12 bündelt Zertifikate mit dem privaten Schlüssel unter einem Passwort. Mit wenigen OpenSSL-Befehlen lässt sich jedes Format in jedes andere umwandeln. Mehr in der Übersicht Verschlüsselung und IT-Sicherheit.

Rating: 4.98/5. From 21 votes.
Please wait...


IT-Berater und Softwareentwickler aus Deutschland mit mehr als 25 Jahren Erfahrung in Unternehmenssoftware. Schwerpunkt: Public-Key-Infrastruktur (PKI) und Zertifikats-Lebenszyklus-Management, dazu lokale KI und große Sprachmodelle. Betreibt techuni.de, Tech Crates und Student Life Online. Mehr auf carsten-kraft.com.