Help Center
Login Sign up
  1. Start
  2. TLS/SSL & S/MIME
  3. OpenSSL - Die wichtigsten Befehle

OpenSSL - Die wichtigsten Befehle

5 Min. Lesezeit

Dateiformate für TLS/SSL-Zertifikate

Wenn das Zertifikat in einem anderen Format als Base64-kodiertem X.509 benötigt wird, kann es mit einem entsprechenden Tool umgewandelt werden, z. B. mit dem Open-Source-Tool OpenSSL (Details zu OpenSSL). Das erforderliche Format hängt von dem Server ab, auf dem das Zertifikat installiert werden soll.

Das PEM-Format ist das am häufigsten verwendete Format für Zertifikate. Erweiterungen für PEM-Zertifikate sind .cer, .crt und .pem. Dabei handelt es sich um Base64-kodierte ASCII-Dateien. Das DER-Format ist die binäre Form des Zertifikats. DER-formatierte Zertifikate enthalten nicht die Anweisungen “BEGIN CERTIFICATE/END CERTIFICATE”. DER-formatierte Zertifikate verwenden meist die Erweiterung .der.

EndungInhaltFormat  Encoding
.pemZertifikate oder Private Keys. Mehrere Abschnitte können in einer Datei zusammengefasst sein.DER oder Base64
.reqRFC2986 PKCS #10: Certification Request Syntax Specification Version 1.7DER oder Base64
.cerEnthält das Zertifikat bestehend aus den Daten (Name, Gültigkeitsdauer, Ausstellende CA, Fingerprint etc.)X509 DER oder Base64
.crtBinäres ZertifikatX.509  binary
.pfx, .p12Mit Kennwort geschützter PKCS#12 Container enthält Zertifikate und Private Keys
.pzb, .p7cPKCS#7 Kann die Zertifikate, Revocation Liste (CRL) etc. enthalten. RFC 2315 PKCS 7: Cryptographic Message Syntax Version 1.5
.crlEnthält die Liste der zurückgezogenen Zertifikate RFC3280 Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
.sstMicrosoft proprietäres Speicherformat für Zertifikate

OpenSSL-Befehle

Allgemeine OpenSSL Befehle

Private Key und CSR generieren

openssl req -new -nodes -keyout key.pem -out csr.pem -newkey rsa:2048

CSR für einen bestehenden Private Key erzeugen

openssl req -out csr.pem -key key.pem -new

CSR für vorhandenes Zertifikat generieren

openssl x509 -x509toreq -in cert.pem -out csr.pem -signkey key.pem

Das Passwort aus einem Private Key entfernen

openssl rsa -in privateKey.pem -out newprivatekey.pem

Befehle zum Auslesen und Prüfen von Informationen

Ist das Zertifikat passwortgeschützt, kann dieser Parameter verwendet werden:  -passin pass: “myPass”

CSR syntaktisch prüfen

openssl req -text -noout -verify -in csr.csr

CSR auslesen

openssl req -in csr.pem -noout -text

Private Key prüfen

openssl rsa -in key.pem -check

Zertifikat anzeigen

openssl x509 -in certificate.crt -text -noout

PKCS#12 Datei prüfen (.pfx or .p12)

openssl pkcs12 -info -in keyStore.p12

Daten aus einer .pem Datei auslesen

openssl x509 -noout -text -in cert.pem

Öffentlichen Schlüssel aus einer .pem Datei auslesen

openssl x509 -in cert.pem -pubkey

Daten aus einer .p12 Datei auslesen

openssl pkcs12 -info -in cert.p12

Zertifikat aus einer .p12 Datei auslesen

openssl pkcs12 -in keystore.p12 -clcerts | openssl x509 -text

Seriennummer aus einer .p12 Datei auslesen

openssl pkcs12 -in keystore.p12 -clcerts | openssl x509 -serial -noout

Ablaufdatum aus einer .pkcs12 Datei auslesen

openssl pkcs12 -in cert.p12 -nodes | openssl x509 -noout -enddate

md5 Fingerprint anzeigen

openssl x509 -fingerprint -noout -md5 -in test.pem

SHA1 Fingerprint anzeigen

openssl x509 -fingerprint -noout -sha1 -in test.pem

Private Key und Zertifikat aus einer PKCS#12-Datei (.pfx .p12) extrahieren

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

Abgleich von Private Key, CSR und Zertifikat

MD5-Hash von Public Key, CSR und Private Key abgleichen

openssl x509 -noout -modulus -in cert.crt | openssl md5

openssl rsa -noout -modulus -in key.pem | openssl md5

openssl req -noout -modulus -in CSR.csr | openssl md5

Die TLS/SSL-Verbindung prüfen. 

Alle Zertifikate, auch die Zwischenzertifikate sollen angezeigt werden.

openssl s_client -connect www.example.com:443

Zertifikats-Dateien konvertieren

Sofern das Zertifikat in einem alternativen Format benötigt wird, kann dieses mit z.B. dem OpenSource-Tool OpenSSL (Details zu OpenSSL) konvertiert werden. Das benötigte Format, ist abhängig vom Server, auf dem es installiert werden soll.

Dateiendungen
Das PEM-Format ist das am häufigsten verwendete Format für Zertifikate. Dateiendungen für PEM-Zertifikate sind .cer, .crt und .pem. Es handelt sich um Base64-kodierte ASCII-Dateien. Das DER-Format ist die Binärform des Zertifikats. DER-formatierte Zertifikate enthalten keinen BEGIN CERTIFICATE/END CERTIFICATE-Header und -Footer. DER-formatierte Zertifikate verwenden am häufigsten die Dateiendung .der.

Beispiele für Format-Konvertierungen

.cer in .pem

openssl x509 -in cert.cer -outform PEM -out cert.pem

.pem in .der

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

.pem in .p7b

openssl crl2pkcs7 -nocrl -certfile cert.pem -out cert.p7b -certfile intermediate.cer

Zum Erzeugen einer .p7b Datei wird das Zertifikat (CRT) und das Intermediate (CA CRT) benötigt. Das Zertifikat steht im Format in den Zertifikat-Details unter CRT zur Verfügung. Das Intermediate wird unter CA CRT angezeigt. CRT und CA CRT (Intermediate) in einen Texteditor kopieren und die Datei als z. B. „Cert.pem“ speichern.

.p7b in .pem

openssl pkcs7 -print_certs -in cert.p7b -out cert.pem

.pfx in .pem

openssl pkcs12 -in cert.pfx -out cert.pem

Es wird dringend empfohlen, die Konvertierung in und von .pfx-Dateien auf dem eigenen Rechner durchzuführen. So kann der Private Key dort beibehalten werden.

.pem in .pfx / .p12

openssl pkcs12 -export -out cert.pfx -inkey key.pem -in cert.pem -certfile intermediate.pem

Zum Erzeugen einer PFX/PKCS#12 Datei wird der Private Key, das Zertifikat (CRT) und das Intermediate (CA CRT) benötigt. Das Zertifikat steht im PEM Format in den Zertifikat-Details unter CRT zur Verfügung. Das Intermediate wird unter CA CRT angezeigt.

Schritt für Schritt:

  • Die Daten unter CRT in einen Texteditor kopieren und die Datei als z. B. „cert.pem“ speichern.
  • Den Vorgang mit dem CA CRT (Intermediate) wiederholen und als z. B. “intermediate.pem” speichern.
  • Im selben Verzeichnis eine Datei mit dem Private Key anlegen und als z. B. „key.pem“ speichern.
  • Das Terminal öffnen und den OpenSSL-Befehl in dem Ordner ausführen, in dem die Dateien gespeichert sind.

Da .pfx / .p12 den Private Key enthält, muss ein Passwort für die Konvertierung angegeben werden. Dieses wird erneut benötigt, wenn z.B. der Private Key aus der PFX Datei extrahiert werden soll.

s_client Kommandos

-showcerts

Den Parameter -showcerts diesem Befehl hinzufügen, um alle vom TLS/SSL-Dienst vorgelegten Zertifikate in der Zertifikatskette anzuzeigen. Dies kann bei der Fehlerbehebung fehlender zwischengeschalteter Zertifizierungsstellen-Zertifikatsprobleme helfen.

openssl s_client -connect : -showcerts

-ssl2

Dieser Parameter zwingt OpenSSL, nur SSLv2 zu verwenden. Diese Option ist nützlich, um unterstützte SSL-Protokollversionen zu testen. Damit lässt sich testen, ob SSLv2 aktiviert ist oder nicht.

openssl s_client -connect : -ssl2

-ssl3,-tls1,-dtls1

Ähnlich wie der Schalter -ssl2 erzwingen -ssl3, -tls1 und -dtls1 die Verwendung von SSLv3, TLSv1 bzw. DTLSv1.

openssl s_client -connect : -ssl3 openssl s_client -connect : -tls1 openssl s_client -connect : -dtls1

**-**cipher 

Mit diesem Parameter lässt sich eine bestimmte Verschlüsselung erzwingen. Diese Option ist nützlich, um aktivierte TLS/SSL-Verschlüsselungen zu testen. So lässt sich nach der Deaktivierung schwacher Verschlüsselungen die Verbindung mit einer deaktivierten Verschlüsselung testen.

Der Befehl openssl ciphers listet alle für OpenSSL verfügbaren Verschlüsselungen auf.

Die Verwendung einer vom Server nicht unterstützten Verschlüsselung führt zu einem Fehler ähnlich dem folgenden.

openssl s_client -connect : -cipher DHE-RSA-AES256-SHA openssl s_client -connect example.com:443 -cipher EXP-RC4-MD5 CONNECTED(00000003) 42792:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/SourceCache/OpenSSL098/OpenSSL098-47.1/src/ssl/s23_clnt.c:602

War dieser Artikel hilfreich?