- Start
- TLS/SSL & S/MIME
- OpenSSL - Die wichtigsten Befehle
OpenSSL - Die wichtigsten Befehle
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.
| Endung | Inhalt | Format Encoding |
|---|---|---|
| .pem | Zertifikate oder Private Keys. Mehrere Abschnitte können in einer Datei zusammengefasst sein. | DER oder Base64 |
| .req | RFC2986 PKCS #10: Certification Request Syntax Specification Version 1.7 | DER oder Base64 |
| .cer | Enthält das Zertifikat bestehend aus den Daten (Name, Gültigkeitsdauer, Ausstellende CA, Fingerprint etc.) | X509 DER oder Base64 |
| .crt | Binäres Zertifikat | X.509 binary |
| .pfx, .p12 | Mit Kennwort geschützter PKCS#12 Container enthält Zertifikate und Private Keys | |
| .pzb, .p7c | PKCS#7 Kann die Zertifikate, Revocation Liste (CRL) etc. enthalten. RFC 2315 PKCS 7: Cryptographic Message Syntax Version 1.5 | |
| .crl | Enthält die Liste der zurückgezogenen Zertifikate RFC3280 Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile | |
| .sst | Microsoft 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
-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
-ssl3,-tls1,-dtls1
Ähnlich wie der Schalter -ssl2 erzwingen -ssl3, -tls1 und -dtls1 die Verwendung von SSLv3, TLSv1 bzw. DTLSv1.
openssl s_client -connect
**-**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
War dieser Artikel hilfreich?
Danke für die Rückmeldung.