OpenSSL-Befehle: Zertifikate, CSR und TLS
OpenSSL-Befehle zum Kopieren: Schlüssel und CSR erstellen, Zertifikat anzeigen, Ablaufdatum prüfen, PEM, DER und PKCS12 umwandeln, TLS mit s_client testen.
50 Einträge
Schlüssel erzeugen und prüfen
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -out key.pemRSA-Schlüssel mit 3072 Bit erzeugenopenssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out ec-key.pemECDSA-Schlüssel auf der Kurve P-256openssl genpkey -algorithm ED25519 -out ed-key.pemEd25519-Schlüsselopenssl pkey -in key.pem -pubout -out pub.pemÖffentlichen Schlüssel aus dem privaten ableitenopenssl pkey -in key.pem -text -nooutSchlüssel mit allen Parametern anzeigenopenssl pkey -in key.pem -check -nooutPrivaten Schlüssel auf Konsistenz prüfenopenssl pkey -in key.pem -aes256 -out key-geschuetzt.pemPrivaten Schlüssel mit Passwort verschlüsselnopenssl pkey -in key-geschuetzt.pem -out key.pemPasswort vom Schlüssel entfernen (fragt das alte Passwort ab)openssl pkcs8 -topk8 -nocrypt -in alt.pem -out key-pkcs8.pemSchlüssel ins PKCS#8-Format umwandelnopenssl ecparam -list_curvesVerfügbare elliptische Kurven auflistenCSR erstellen
openssl req -new -key key.pem -out anfrage.csropenssl CSR erstellen mit vorhandenem Schlüssel; Felder werden abgefragtopenssl req -new -newkey rsa:3072 -noenc -keyout key.pem -out anfrage.csr -subj "/CN=example.com" -addext "subjectAltName=DNS:example.com,DNS:www.example.com"Schlüssel und CSR mit SAN in einem Schritt (OpenSSL 3; in 1.1.1 -nodes statt -noenc)openssl req -in anfrage.csr -text -noout -verifyCSR anzeigen und Signatur prüfenZertifikate anzeigen und prüfen
openssl x509 -in cert.pem -text -nooutopenssl Zertifikat anzeigen: alle Felder lesbaropenssl x509 -in cert.pem -noout -subject -issuer -datesInhaber, Aussteller und Gültigkeitopenssl x509 -in cert.pem -noout -enddateNur das Ablaufdatumopenssl x509 -in cert.pem -noout -checkend 2592000Läuft das Zertifikat in den nächsten 30 Tagen ab? Exit-Code 1 heißt jaopenssl x509 -in cert.pem -noout -fingerprint -sha256SHA-256-Fingerprintopenssl x509 -in cert.pem -noout -ext subjectAltNameNur die SAN-Einträge (OpenSSL 3)openssl verify -CAfile root.pem -untrusted zwischen.pem cert.pemZertifikatskette gegen eine Wurzel prüfenopenssl x509 -in cert.pem -noout -pubkey | openssl sha256Prüfwert des öffentlichen Schlüssels im Zertifikat; mit dem Wert des Schlüssels vergleichenopenssl pkey -in key.pem -pubout | openssl sha256Gleicher Prüfwert aus dem privaten Schlüssel: Stimmen beide überein, gehören Schlüssel und Zertifikat zusammenZertifikate ausstellen
openssl req -x509 -newkey rsa:3072 -noenc -keyout key.pem -out cert.pem -days 365 -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost,IP:127.0.0.1"Selbstsigniertes Zertifikat für Testsopenssl req -x509 -new -key ca.key -out ca.pem -days 3650 -subj "/CN=Test-CA"Eigene Test-CA anlegenopenssl x509 -req -in anfrage.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out cert.pem -days 365 -copy_extensions copyCSR mit eigener CA signieren und Erweiterungen wie SAN übernehmen (OpenSSL 3)Formate umwandeln
openssl x509 -in cert.pem -outform der -out cert.derPEM in DER umwandeln (binär)openssl x509 -in cert.der -inform der -out cert.pemDER in PEM umwandelnopenssl pkcs12 -export -inkey key.pem -in cert.pem -certfile kette.pem -out bundle.p12PKCS12-Datei (.p12/.pfx) aus Schlüssel, Zertifikat und Kette erstellenopenssl pkcs12 -in bundle.p12 -noenc -out alles.pemPKCS12 in PEM mit Schlüssel ohne Passwort (früher -nodes)openssl pkcs12 -in bundle.p12 -nokeys -out cert.pemNur die Zertifikate aus einer PKCS12-Dateiopenssl pkcs12 -in alt.pfx -legacy -noenc -out alles.pemAlte PFX-Dateien mit RC2 oder 3DES in OpenSSL 3 öffnenopenssl pkcs7 -in kette.p7b -print_certs -out kette.pemPKCS#7-Kette (.p7b) in PEM umwandelnTLS-Verbindungen testen
openssl s_client -connect example.com:443 -servername example.comopenssl s_client: TLS-Verbindung aufbauen und Zertifikat anzeigenopenssl s_client -connect example.com:443 -servername example.com -showcerts </dev/nullGesamte Kette des Servers ausgebenopenssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -datesGültigkeit des Serverzertifikats direkt abfragenopenssl s_client -connect example.com:443 -tls1_3Nur TLS 1.3 zulassen; -tls1_2 entsprechendopenssl s_client -connect example.com:443 -alpn h2Prüfen, ob der Server HTTP/2 per ALPN anbietetopenssl s_client -starttls smtp -connect mail.example.com:587STARTTLS bei SMTP testen; auch imap, pop3, ftpopenssl ciphers -v 'HIGH:!aNULL'Cipher-Suites anzeigen, die ein Ausdruck auswähltHashes, Signaturen, Zufall
openssl dgst -sha256 datei.isoSHA-256-Prüfsumme einer Dateiopenssl dgst -sha256 -hmac geheim datei.txtHMAC-SHA256 mit einem Schlüsselopenssl dgst -sha256 -sign key.pem -out sig.bin datei.txtDatei signierenopenssl dgst -sha256 -verify pub.pem -signature sig.bin datei.txtSignatur prüfenopenssl enc -aes-256-cbc -pbkdf2 -salt -in datei -out datei.encDatei mit Passwort verschlüsseln; -d entschlüsseltopenssl rand -hex 3232 zufällige Bytes als Hex, etwa für Secretsopenssl rand -base64 3232 zufällige Bytes als Base64openssl base64 -in datei.bin -out datei.b64Base64 kodieren; mit -d dekodierenopenssl passwd -6Passwort-Hash im SHA-512-crypt-Format ($6$), wie in /etc/shadowopenssl version -aVersion, Build-Optionen und Konfigurationsverzeichnisopenssl list -digest-algorithmsVerfügbare Hash-Verfahren auflistenKein Eintrag gefunden. Versuchen Sie einen anderen Begriff oder wählen Sie „Alle Gruppen“.
Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.
OpenSSL sicher nutzen
Dieser Spickzettel enthält 50 OpenSSL-Befehle für die häufigsten Aufgaben: Schlüssel erzeugen, openssl CSR erstellen, openssl Zertifikat anzeigen und prüfen, Formate wie PEM in DER oder PKCS12 umwandeln, TLS-Verbindungen mit openssl s_client testen sowie Hashes, Signaturen und Zufallswerte. Die Befehle sind für OpenSSL 3 geschrieben; Unterschiede zu 1.1.1 sind angegeben.
PEM ist das Textformat mit -----BEGIN …------Zeilen, DER dieselbe Struktur binär. PKCS12-Dateien (.p12, .pfx) bündeln Zertifikat, Kette und privaten Schlüssel passwortgeschützt, wie es Windows-Server, IIS oder Java-Keystores oft verlangen. Ein häufiger Prüfschritt: Gehören Zertifikat und Schlüssel zusammen? Dazu vergleichen Sie den Prüfwert des öffentlichen Schlüssels aus beiden Dateien.
Geben Sie -servername bei s_client immer mit an, sonst liefert ein Server mit mehreren Domains womöglich das falsche Zertifikat. Private Schlüssel ohne Passwort (-noenc) gehören in Dateien, die nur der Dienst lesen darf. Zum Lesen der Ergebnisse helfen der Zertifikat-Dekoder und der CSR-Dekoder, die alles im Browser auswerten.
Anleitung: OpenSSL-Befehle in 4 Schritten
- Suchen Sie nach der Aufgabe, etwa „CSR“, „PKCS12“ oder „Ablaufdatum“.
- Kopieren Sie den Befehl mit „Kopieren“ und passen Sie Dateinamen und Domain an.
- Führen Sie ihn im Terminal aus; unter Windows zum Beispiel in Git Bash oder WSL.
- Prüfen Sie das Ergebnis, etwa mit dem Zertifikat-Dekoder dieser Seite.
Typische Anwendungsfälle
- Einen Schlüssel und eine CSR für ein neues TLS-Zertifikat erzeugen.
- Ablaufdatum, SAN-Einträge und Kette eines Servers per
s_clientprüfen. - Zertifikate zwischen PEM, DER und PKCS#12 umwandeln, etwa für Windows-Server oder Java.
- Prüfen, ob Zertifikat und privater Schlüssel zusammengehören.
Häufige Fragen
Wie prüfe ich das Ablaufdatum eines Zertifikats?
Für eine Datei mit openssl x509 -in cert.pem -noout -enddate. Für einen Server mit openssl s_client -connect host:443 -servername host </dev/null | openssl x509 -noout -dates. In Skripten meldet -checkend SEKUNDEN per Exit-Code, ob das Zertifikat bald abläuft.
Wie wandle ich PFX in PEM um?
Mit openssl pkcs12 -in datei.pfx -noenc -out alles.pem. Nur die Zertifikate erhalten Sie mit -nokeys, nur den Schlüssel mit -nocerts. Bei alten PFX-Dateien in OpenSSL 3 hilft zusätzlich -legacy.
Wie erstelle ich eine CSR mit mehreren Domains?
Mit -addext "subjectAltName=DNS:example.com,DNS:www.example.com" beim Befehl openssl req -new. Browser werten nur die SAN-Einträge aus, nicht mehr den Common Name allein.
Welche Schlüssellänge ist sinnvoll?
Für RSA gelten 3072 Bit als gute Wahl für neue Schlüssel; 2048 Bit sind noch verbreitet. Bei ECDSA bietet P-256 eine vergleichbare Sicherheit bei deutlich kürzeren Schlüsseln. Richtlinien Ihrer Organisation oder des BSI gehen vor.
Welche OpenSSL-Version habe ich?
openssl version zeigt sie an, openssl version -a liefert zusätzlich Build-Optionen und das Konfigurationsverzeichnis. Die Befehle hier sind für OpenSSL 3; abweichende Optionen älterer Versionen sind angegeben.
Ist -nodes in OpenSSL 3 noch gültig?
Ja, -nodes funktioniert weiter, gilt aber als veraltet. OpenSSL 3 nennt die Option -noenc. Beide bewirken, dass der private Schlüssel ohne Passwort gespeichert wird; schützen Sie die Datei dann über Dateirechte.
Das könnte auch helfen
HTTP-Statuscodes
Alle gängigen HTTP-Statuscodes von 100 bis 511 mit Bedeutung, typischer Ursache und Suche.
ÖffnenHTTP-Header-Referenz
Wichtige Anfrage- und Antwort-Header mit Bedeutung und Beispiel, durchsuchbar.
ÖffnenMIME-Typen
Über 150 MIME-Typen nachschlagen: Dateiendung zu Content-Type und umgekehrt.
ÖffnenGit-Befehle
Git-Spickzettel: die wichtigsten Befehle nach Aufgaben gruppiert, durchsuchbar und kopierbar.
ÖffnenBash-Befehle
Bash- und Linux-Befehle für Dateien, Text, Prozesse und Netzwerk, mit Suche und Kopieren.
ÖffnenPort-Liste
Bekannte TCP- und UDP-Ports von 20 bis 51820 mit Dienst und Hinweis, durchsuchbar.
Öffnen