Praktische Tipps für die Arbeit mit OpenSSL - Export, Import

26.05.2016 | Petra Alm

SSL-Zertifikate sind für alle Plattformen bestimmt und von Zeit zu Zeit ist es erforderlich, das Zertifikat konvertieren oder mit ihm auf eine andere Weise zu arbeiten. Besitzer der GeoTrust- und RapidSSL-Zertifikate können ihr Zertifikat für mehrere Server verwenden, die Anleitung für den Transfer der Zertifikate kann für sie also sicherlich nützlich sein.

Konversion der Formate des SSL Zertifikats

Arbeit mit dem PFX-Zertifikat (PKCS#12)

Das PFX-Format (genauere Bezeichnung ist PKCS#12) wird auf Plattformen Microsoft für die Speicherung des Binär-Zertifikats zusammen mit dem Privatschlüssel und Intermediate-Zertifikate verwendet. Sie können es auf dem Windows und Microsoft-Server installieren, wenn sie Import bzw. Export des Zertifikats durchführen.

Erstellung der PFX-Datei in OpenSSL

Die PFX-Datei können Sie in OpenSSL zum Beispiel in dem Moment erstellen, wenn Sie das SSL-Zertifikat vom Linux-Server auf den Microsoft-Server konvertieren.

openssl pkcs12 -export -in zertifikat.cer -inkey privatekey.key -out output.pfx

Durch die Kombination des Zertifikats mit dem Privatschlüssel erwerben Sie die PFX-Datei. Wenn Sie weitere Zertifikate hinzufügen möchten, zum Beispiel ein Intermediate-Zertifikat, können Sie mit dem Parameter -in tun; zum Beispiel -in intermediate.cer

Export der Paarschlüssel aus PFX 

Wenn Sie das SSL Zertifikat im PFX-Format auf einen anderen Server exportieren wollen, ist es nötig, den Privatschlüssel und das Zertifikat aus der PFX-Datei zu exportieren. Das SSL-Zertifikat wird oft vom Microsoft-Server auf den Linux-Server exportiert, da die Lizenz der GeoTrust- und RapidSSL-Zertifikate die Verwendung des Zertifikats auf mehreren Servern nicht beschränkt.

Export von "allem", also inklusive des Privatschlüssels, wird mithilfe des folgenden Befehls durchgeführt:

openssl pkcs12 -in file.pfx -out file.pem -nodes

Das Ergebnis ist eine übersichtliche PEM-Datei mit allen Zertifikaten, die in PFX früher waren. Zum Schluss erwerben Sie einen nicht verschlüsselten Privatschlüssel, dessen nicht verschlüsselte Form durch den Parameter -nodes (kein DES) sichergestellt wurde. 


Formate in denen die SSL-Zertifikate gespeichert sind

Für die Grundorientierung zwischen den verwendeten Formaten der Zertifikate führe ich eine kurze Übersicht an. Generell gilt das, dass das Suffix der Datei für das Format des Zertifikats nicht maßgebend ist; wichtig ist der Inhalt der Datei.

Mit Zertifikaten können Sie in der Binär- oder Textform (Base64) arbeiten. In welchem dieser zwei Formate das Zertifikat ist, erkennen Sie entweder nach dem Suffix, oder nach dem Inhalt der Datei, welche Sie zum Beispiel im Notepad öffnen können.

PEM-Format

Das am häufigsten verwendete Format. Das Zertifikat ist in der Textform in Base64 (ASCII Zeichen) und in dieser Form wird es von Zertifizierungsstellen ausgestellt, das gleiche Format des Zertifikats erhalten Sie vom SSLmarket per E-Mail. Das SSL-Zertifikat wird durch die Kette "-----BEGIN CERTIFICATE-----" angeführt und durch die Kette "-----END CERTIFICATE-----" beendet.

Apache-Server und viele andere verwenden die PEM-Zertifikate; das Zertifikat kann mit dem Privatschlüssel in der gleichen Datei gespeichert sein. Das PEM-Format hat typische Suffixe .pem, .crt, .cer, und .key.

DER-Format

Im Unterschied zum PEM-Format ist das DER-Format binär. Beim Öffnen im Notepad sehen Sie nichts "Sinnvolles". Es wird oft auf Java-Plattformen verwendet. Das Suffix der Datei ist .der oder .cer.

PKCS#7- oder P7B-Format

Dies ist das Format, welches wieder Base64 und ASCII Zeichen verwendet, in der Datei befinden sich mehrere Zertifikate. Es enthält das Zertifikat und Intermediate-Zertifikate, jedoch nicht den Privatschlüssel.

Die üblichen Suffixe dieses Formats sind .p7b und .p7c. Sie sind auf Microsoft-Plattformen und in Tomcat üblich.

PKCS#12 oder PFX

Wie bereits oben erwähnt wurde, es handelt sich um das Format, in welchem das Zertifikat zusammen mit dem Privatschlüssel und beziehungsweise mit anderen Zertifikaten in Chain gespeichert ist (Intermediate Zertifikate). In einer Datei ist also alles gespeichert, was Sie für den Betrieb des Zertifikats benötigen. Es handelt sich um das Binär-Format, welches besonders auf dem Windows- und Microsoft-Server verwendet wird. Das typische Suffix ist .pfx oder .p12.


Konvertieren des SSL-Zertifikats in verschiedene Formate

Verwenden Sie folgende Befehle in OpenSSL fürs Konvertieren des Zertifikats in ein anderes Format. 

Arbeit mit dem PEM-Zertifikat

Das PEM-Format speichert das Zertifikat in der Textform (Base64). Es ist das universellste und am häufigsten verwendete Format.

PEM in DER konvertieren

Sie ändern das Text-Zertifikat in Base64 zum Binär-Zertifikat.

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

PEM in P7B konvertieren

openssl crl2pkcs7 -nocrl -certfile zertifikat.cer -out zertifikat.p7b -certfile CACert.cer

PEM in PFX konvertieren

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

Arbeit mit dem DER-Zertifikat

DER ist das Binär-Format des Zertifikats. Sie können es in der Text-Form nicht verwenden (in eine E-Mail kopieren, u. ä.).

DER in PEM konvertieren

openssl x509 -inform der -in zertifikat.cer -out zertifikat.pem

Arbeit mit dem P7B-Zertifikat

Das P7B-Format enthält mehrere Zertifikate, aber es enthält keinen Privatschlüssel. Es wird zum Beispiel für die Speicherung von Chain des Zertifikats verwendet.

P7B in PEM konvertieren

openssl pkcs7 -print_certs -in zertifikat.p7b -out zertifikat.cer

P7B in PFX konvertieren

Zuerst exportieren Sie das SSL-Zertifikat aus P7B:

openssl pkcs7 -print_certs -in zertifikat.p7b -out zertifikat.cer

Dann fügen Sie den Privatschlüssel (.key) zu ihm und ein Intermediate-Zertifikat (CACert.cer) hinzu und diese verbinden Sie in PFX:

openssl pkcs12 -export -in zertifikat.cer -inkey privatekey.key -out zertifikat.pfx -certfile CACert.cer

Arbeiten mit dem PFX-Zertifikat

Das PFX-Format enthält das Zertifikat und der Privatschlüssel wird durch ein Passwort geschützt. Bei der Arbeit mit dem Zertifikat ist es nötig, das Passwort zu kennen und in OpenSSL einzugeben.

PFX in PEM konvertieren

openssl pkcs12 -in zertifikat.pfx -out zertifikat.cer -nodes

Das Zertifikat und der Privatschlüssel sind in einer Datei gespeichert, aus welcher Sie sie kopieren können.

 

Referenzen:

http://www.openssl.org/docs/apps/openssl.html

https://www.sslshopper.com/ssl-converter.html


Petra Alm
Spezialistin für TLS-Zertifikate
DigiCert TLS/SSL Professional
e-mail: info(at)sslmarket.de