Seite wählen

Safari durch den Zertifikatsdschungel

von | Aug 16, 2011 | Security, Linux, Windows, Mac

PEM ist das mt Abstand meistgenutze Format. Es handelt sich hierbei um Base64 kodierte ASCII-Dateien, die ein „—–BEGIN CERTIFICATE—–“ und „—–END CERTIFICATE Statement beinhalten. Ülicherweise werden sie mit einem Suffix wie .pem, .crt, .cer oder .key versehen.
Serverzertifikate, Zwischenzertifikate und private Schlüssel können alle im PEM-Format vorliegen oder in dieses konvertiert werden. Apache oder ähnliche Server benutzen das PEM-Format. Mehrere PEM Zertifikate und auch der private Schlüssel können in einer Datei zusammengefaßt werden. Aber die meisten Plattformen, wie z.B. der Apache erwarten Zertifiakte und privaten Schlüssel in unterschiedlichen Dateien.
DER ist ein binäres Format. Es hat manchmal .der als Suffix, kann aber auch auf .cer enden. Um herauszufinden, ob das vorligende Zertifikat im PEM- oder DER-Format vorliegt, ist einfach zu prüfen, ob die oben beschriebenen Statements vorkommen. Dieses kann man auch durch einfaches öffnen in einem Texteditor ermitteln.
Alle Zertifikatesformen und auch der private Schlüssel können im DER-Format kodiert werden. DER wird typischerweise auf JAVA-Plattformen eingesetzt, da der dortige SSL-Converter nur Zertifikate im DER-Format konvertiert.
PKCS#7 bzw. P7B sind üblicherweise in Base64 kodiert und benutzen ein Suffix, wie .p7b oder .p7c. P7B-Zertifikate sind an den beiden Statements „—–BEGIN PKCS7—–“ und „—–END PKCS7—–“ zu erkennen. Eine P7B Datei beinhaltet nur das Zertifikat und das Zertifikat der signierenden CA, nicht den privaten Schlüssel. Viele Plattformen unterstützen dieses Format, z.B. Tomcat oder Microsoft Windows.
PKCS#12 bzw. PFX ist ein binärkodiertes Format. Das Server-Zertifikat, jedes Zwischenzertifikat und der private Schlüssel werden in einer Datei abgelgt. PFX-Dateien werden typischerweise auf Windows-Plattformen zum im- bzw. exportieren verwendet und enden üblicherweise auf .pfx oder .p12.
Konvertierung mit OpenSSL
PEM -> PKCS12: openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile CACert.crt
PEM -> DER: openssl x509 -outform der -in certificate.pem -out certificate.der
PEM -> P7B: openssl crl2pkcs7 –nocrl -in certificate.cer -out certificate.p7b -certfile CACert.cer
DER -> PEM: openssl x509 -inform der -in certificate.cer -out certificate.pem
P7B -> PEM: openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
P7B -> PFX: openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer; openssl pkcs12 -export -in certificate.cer -inkey private.key -out certificate.pfx -certfile CACert.cer
PFX -> PEM: openssl pkcs12 -in certificate.pfx -out certifikate.cer -nodes
Bei der Konvertierung von PFX nach PEM packt openssl alle Zertifikate und den privaten Schlüssel in eine Datei. Es ist jedoch leicht möglich die jeweiligen Zertifikate, sowie den privaten Schlüssel mit den BEGIN- und END-Statements per Copy’n’Paste in eigene Datei zu kopieren und zu speichern.

Lennart Betz
Lennart Betz
Senior Consultant

Der diplomierte Mathematiker arbeitet bei NETWAYS im Bereich Consulting und bereichert seine Kunden mit seinem Wissen zu Icinga, Nagios und anderen Open Source Administrationstools. Im Büro erleuchtet Lennart seine Kollegen mit fundierten geschichtlichen Vorträgen die seinesgleichen suchen.

2 Kommentare

  1. Christian W.

    Hallo,
    wie ist es denn möglich mit einer Windows CA ein Server-Zertifikat für Apache oder/und FreeRadius zu erzeugen. Und danach Client Zertifikate für die Radius Clients. Das müsste doch gehen, oder?
    Viele Grüße
    Christian

    Antworten
  2. Lennart Betz

    Hallo Christian,
    ich kenne mich mit der Windows CA leider nicht aus. Meines wissens verwendet diese das pfx-Format. Gelingt es mit der Windows CA, ein Export aus zu führen, kann ich mit OpenSSL, wie beschrieben, die Schlüssel und Zertifikate in jedes Format zu konvertieren. Apache benutzt PEM in standarmäßig getrennten Dateien für den privaten Schlüssel, das Zertifikat und des RootCA-zertifikat.
    Soll mit der CA auch der private Schlüssel erzeugt werden und nicht nur ein Request signiert werden muss selbstverständlich auch dieser exportiert werden.
    Ciao
    Lennart.

    Antworten

Trackbacks/Pingbacks

  1. Weekly Snap: InGraph, Drobo + TimeCapsule backup & Certificates › NETWAYS Blog - [...] then took us on a safari through the certificate jungle, clarifying the differences between PEM, DER, PKCS#7 / P7B,…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Security | Linux | Windows | Mac

Raycast, ein fast neuer und genialer App Launcher

Wenn es um die Effektivität bei der Arbeit am Mac geht, gibt es viele Werkzeuge, die dir helfen können, produktiver zu sein. Eines der Tools, das ich sehr empfehlen kann, ist Raycast - ein Application Launcher für den Mac. Raycast hilft dir, deine Arbeitsabläufe zu...

NWS – Unsere Infrastruktur und SLAs

Es gab wahrhaftig schon mal einfachere Zeiten: Zuerst bringt die Corona-Pandemie das öffentliche Leben über Jahre hinweg zum Erliegen und treibt die Leute in die Isolation. Zugegeben: uns als Hosting Provider kam der durch das Homeoffice gestiegene Bedarf an...