SSL Zertifikate mit openSSL konvertieren

Problem

Sie möchten ein Zertifikat konvertieren. Am einfachsten geht das mit openSSL. 

Lösung

Gleich voran, OpenSSL für Windows können Sie hier herunterladen:

Download

Sie können OpenSSL in Windows entweder in einen Ordner entpacken (vergessen Sie nicht in Ihrer Pfad Variable den Pfad zum Ordner der openssl.exe hinzuzufügen) oder installieren.
Für Installationsfaule gäbe es noch anonsten auch online Konverter wie sslshopper.com - in wie fern Sie ihre internen Zertifikate zur Konvertion einer externen Seite überlassen ist Ihre Sache. Ich empfehle Ihnen den OpenSSL Download, es ist wirklich keine hexerei.

Grundlegendes zu den Zertifikatsformaten


Base64/PEM/CER/KEY/CRT Format

Ist das am häufigsten verwendete Format, in dem Zertifizierungsstellen Zertifikate ausstellen. Es enthält Text wie „—BEGIN CERTIFICATE—–“ und „—END CERTIFICATE—–“.
In einer Datei können mehrere PEM-Zertifikate und auch der private Schlüssel untereinander enthalten sein. Die meisten Plattformen (z. B.: - Apache) erwarten jedoch, dass sich die Zertifikate und der private Schlüssel in separaten Dateien befinden. Diese Dateien heißen meist id_rsa (ohne Dateiendung für den privaten Schlüssel) und id_rsa.pub (für den öffentlichen Teil).

DER Format

Es ist eine binäre Form des ASCII-PEM-Formatzertifikats. Alle Arten von Zertifikaten und privaten Schlüsseln können im DER-Format codiert werden

P7B / PKCS # 7

Ethalten die Anweisungen „—–BEGIN PKCS—–“ und „—END PKCS7—–“. Es kann nur Zertifikate und Kettenzertifikate enthalten, nicht jedoch den privaten Schlüssel.

PKCS # 8

Ethalten die Anweisungen „—–BEGIN PRIVATE KEY—–“ und „—END PRIVATE KEY—–“. Es kann Zertifikate, Kettenzertifikate enthalten und privaten Schlüssel enthalten.

PFX / PKCS # 12

Sie werden zum Speichern des Serverzertifikats, aller Zwischenzertifikate und des privaten Schlüssels in einer verschlüsselbaren Datei verwendet.

Konvertierungsbefehle für openSSL

Nicht vergessen: PEM kann auch CER, CRT, sein.


PEM nach DER

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

PEM nach P7B
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CAcert.cer

PEM nach PFX
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CAcert.crt

DER nach PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem

P7B nach PEM
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer

P7B nach PFX
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CAcert.cer

PFX(PKCS#12) nach PEM
openssl pkcs12 -in certificate.pfx -nodes -out certificate.cer
Mit -nocerts wird nur der private Key ausgegeben.

Zertificate und/oder privaten Schlüssel von .pfx (PKCS12) Datei
Hinweis: Die *.pfx Datei ist ein "Container" in einem PKCX#12 Format und enthält privaten sowie öffentlichen Schlüssel sowie CA Zertifikat.

Generelle openSSL Befehle

Mit diesen Befehlen können Sie CSRs, Zertifikate und private Schlüssel generieren und andere verschiedene Aufgaben ausführen.

Generieren eines neuen privaten Schlüssel und eine neue Zertifikatsignierungsanforderung
openssl req -out CSR.csr -new -newkey rsa: 2048 -nodes -keyout privateKey.key

Generieren eines selbstsigniertes Zertifikat
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa: 2048 -keyout privateKey.key -out certificate.crt

Generieren einer Zertifikatsignierungsanforderung (Certificate Signing Request, CSR) für einen vorhandenen privaten Schlüssel
openssl req -out CSR.csr -key privateKey.key -new

Generieren einer Zertifikatsignierungsanforderung basierend auf einem vorhandenen Zertifikat
openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key

Entfernen der Passphrase aus einem privaten Schlüssel
openssl rsa -in privateKey.pem -out newPrivateKey.pem

 

Drucken