Zum Hauptinhalt springen
  1. Artikel/

Was ist eine PEM-Datei?

Was ist eine PEM-Datei? #

Eine PEM-Datei ist ein Textformat zur Speicherung kryptografischer Daten – z.B. Zertifikate, Schlüssel oder Zertifikatsketten.
Der Name steht für Privacy Enhanced Mail, eine alte IETF-Spezifikation, deren Format sich aber weit über den ursprünglichen Zweck hinaus durchgesetzt hat.


Grundidee #

PEM ist kein spezieller Dateityp, sondern ein Containerformat:
Es speichert binäre Daten (z.B. X.509-Zertifikate, RSA-Schlüssel) als Base64-kodierten Text, eingerahmt von klar lesbaren Header- und Footer-Zeilen.

Beispiel:

-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIUfZk0b4bB5p2aWqfY9V3cA5JmfJcwDQYJKoZIhvcNAQEL
BQAwRzELMAkGA1UEBhMCREUxEDAOBgNVBAgMB05pZWRlcnMxEDAOBgNVBAoMB0lU
Q29uc3VsdGluZzEbMBkGA1UEAwwSYXBwLmV4YW1wbGUuY29tMB4XDTI1MTAyOTEy
MzAwMFoXDTI2MTAyOTEyMzAwMFowRzELMAkGA1UEBhMCREUxEDAOBgNVBAgMB05p
ZWRlcnMxEDAOBgNVBAoMB0lUQ29uc3VsdGluZzEbMBkGA1UEAwwSYXBwLmV4YW1w
bGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp9lYH...
-----END CERTIFICATE-----

Typische Inhalte einer PEM-Datei #

Inhalt Header/Footer Beschreibung
Zertifikat (Public) -----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Enthält den öffentlichen Schlüssel und Signatur der CA
Privater Schlüssel (RSA/ECC) -----BEGIN PRIVATE KEY----- oder -----BEGIN RSA PRIVATE KEY----- Nur auf dem eigenen Server! Niemals weitergeben.
Zertifikatskette (CA-Bundle) mehrere BEGIN CERTIFICATE Blöcke hintereinander Kette von Intermediate- bis Root-Zertifikat
CSR (Certificate Signing Request) -----BEGIN CERTIFICATE REQUEST----- Wird an eine CA gesendet, um ein Zertifikat zu beantragen

Typische Dateiendungen #

Endung Bedeutung
.pem allgemeiner Container
.crt oder .cer Zertifikat (meist ebenfalls PEM)
.key privater Schlüssel
.csr Zertifikatsantrag

Inhaltlich sind .crt, .cer und .pem häufig identisch, nur der Dateiname unterscheidet sich.


Beispielhafte Nutzung #

Zertifikat prüfen:

openssl x509 -in server.pem -text -noout

Private Key anzeigen:

openssl rsa -in server.key -check

PEM → DER (binär) konvertieren:

openssl x509 -in cert.pem -outform der -out cert.der

Kurz gesagt #

  • PEM = Base64-Textverpackung für kryptografische Objekte.
  • Wird von OpenSSL, Apache, Nginx, Postfix, Dovecot, etc. verwendet.
  • Menschlich lesbar, portabel, universell.

Weiterführend #