openssl req ·
openssl x509 ·
openssl rsa ·
openssl s_client ·
openssl verify
OpenSSL ist das Schweizer Taschenmesser für SSL/TLS. Diese Cheatsheet fasst die wichtigsten Befehle für die Erstellung, Konvertierung und Überprüfung von Zertifikaten und Schlüsseln zusammen.
Private Keys werden mit OpenSSL generiert und verwaltet. Die gebräuchlichsten Formate sind RSA (2048/4096 bit) und EC (Elliptic Curve) für moderne Anwendungen.
| Befehl | Beschreibung |
|---|---|
| genrsa -out key.pem 2048 | RSA-Schlüssel (2048 bit) ohne Passphrase |
| genrsa -aes256 -out key.pem 2048 | RSA-Schlüssel mit Passphrase |
| ecparam -name prime256v1 -genkey -out key.pem | EC-Schlüssel (P-256) |
| rsa -in key.pem -out key-nopass.pem | Passphrase entfernen |
| rsa -in key.pem -text -noout | Schlüssel anzeigen |
| pkcs8 -in key.pem -topk8 -nocrypt -out key.pk8 | PKCS8-Format konvertieren |
CSR (Certificate Signing Request) wird an eine Certificate Authority (CA) gesendet, um ein signiertes Zertifikat zu erhalten. Er enthält den öffentlichen Schlüssel und die Identitätsinformationen.
| Befehl | Beschreibung |
|---|---|
| req -new -key key.pem -out csr.pem | CSR erstellen (interaktiv) |
| req -new -key key.pem -out csr.pem -subj "/CN=example.com" | CSR mit direktem Subject |
| req -text -noout -verify -in csr.pem | CSR überprüfen und anzeigen |
| req -new -newkey rsa:2048 -nodes -keyout key.pem -out csr.pem | Schlüssel + CSR in einem Schritt |
| req -new -newkey ec:prime256v1 -nodes -keyout key.pem -out csr.pem | EC-Schlüssel + CSR |
| req -in csr.pem -noout -subject | Subject der CSR anzeigen |
subjectAltName = DNS:example.com, DNS:www.example.com oder verwenden Sie Tools wie certbot.
X.509-Zertifikate werden mit OpenSSL erstellt, signiert, überprüft und in verschiedene Formate konvertiert. Sie enthalten den öffentlichen Schlüssel, den Subject und die Signatur der CA.
| Befehl | Beschreibung |
|---|---|
| x509 -in cert.pem -text -noout | Zertifikat anzeigen |
| x509 -in cert.pem -pubkey -noout | Öffentlichen Schlüssel extrahieren |
| x509 -in cert.pem -startdate -enddate -noout | Gültigkeitszeitraum anzeigen |
| x509 -in cert.pem -subject -noout | Subject anzeigen |
| x509 -in cert.pem -issuer -noout | Aussteller anzeigen |
| x509 -in cert.pem -fingerprint -noout | Fingerprint (SHA1) anzeigen |
| req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365 | Self-Signed Zertifikat erstellen |
Formatkonvertierung – OpenSSL kann Zertifikate und Schlüssel zwischen verschiedenen Formaten konvertieren: PEM (Base64), DER (binär), PKCS12 (PFX) und mehr.
| Befehl | Beschreibung |
|---|---|
| x509 -in cert.pem -out cert.der -outform DER | PEM → DER (binär) |
| x509 -in cert.der -inform DER -out cert.pem | DER → PEM |
| rsa -in key.pem -out key.der -outform DER | RSA-Schlüssel PEM → DER |
| rsa -in key.der -inform DER -out key.pem | RSA-Schlüssel DER → PEM |
| pkcs12 -export -in cert.pem -inkey key.pem -out cert.pfx | PEM → PKCS12 (PFX) |
| pkcs12 -in cert.pfx -out cert.pem -nodes | PKCS12 → PEM (mit Privatkey) |
| pkcs12 -in cert.pfx -out cert.pem -nokeys -clcerts | PKCS12 → PEM (nur Zertifikat) |
| pkcs12 -in cert.pfx -out key.pem -nocerts -nodes | PKCS12 → PEM (nur Privatkey) |
Überprüfung – Prüft die Gültigkeit von Zertifikaten, die Zertifikatskette und die Vertrauenswürdigkeit. Mit s_client können Sie die TLS-Konfiguration eines Servers testen.
| Befehl | Beschreibung |
|---|---|
| verify -CAfile root.pem server.crt | Zertifikat gegen Root-CA prüfen |
| verify -CAfile root.pem -untrusted inter.pem server.crt | Mit Intermediate-CA prüfen |
| s_client -connect example.com:443 | TLS-Verbindung aufbauen |
| s_client -connect example.com:443 -showcerts | Alle Zertifikate anzeigen |
| s_client -connect example.com:443 -tls1_3 | Mit TLS 1.3 verbinden |
| s_client -connect example.com:443 -servername example.com | SNI verwenden |
| ocsp -issuer issuer.pem -cert server.crt -url http://ocsp.example.com | OCSP-Status prüfen |
openssl s_client -connect ist das wichtigste Tool zur Fehlersuche bei SSL/TLS-Verbindungen. Damit können Sie Zertifikate, Cipher Suites und Verbindungsfehler direkt testen.
Server-Konfiguration – Die korrekte Einbindung von Zertifikaten und Schlüsseln in Webserver (Nginx, Apache) und Mailserver (Postfix, Dovecot) ist entscheidend für die Sicherheit.
| Server | Konfiguration |
|---|---|
| Nginx | ssl_certificate, ssl_certificate_key, ssl_trusted_certificate |
| Apache | SSLCertificateFile, SSLCertificateKeyFile, SSLCertificateChainFile |
| Postfix | smtpd_tls_cert_file, smtpd_tls_key_file, smtpd_tls_CAfile |
| Dovecot | ssl_cert, ssl_key, ssl_ca |
| HAProxy | crt / ssl crt, crt-list |
genrsa
req -new
x509
pkcs12
verify
s_client
openssl genrsa -out key.pem 2048 ·
openssl req -new -key key.pem -out csr.pem ·
openssl s_client -connect example.com:443