Was ist eine PEM-Datei?
Inhaltsverzeichnis
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.