Diese Kommandos erlauben es, Zertifikatsanforderungen (CSR), Zertifikate und Private Keys zu erstellen und weitere Aufgaben.
Einen neuen Private-Key und eine Zertifikatsanforderung erzeugen
openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key
Ein Self-Signed-Zertifikat erzeugen
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
Eine Zertifikatsanforderung mit einem bestehenden Schlüssel erzeugen
openssl req -out CSR.csr -key privateKey.key -new
Eine Zertifikatsanforderung basierend auf ein bestehendes Zertifikat erzeugen
openssl x509 -x509toreq -in certificate.crt -out CSR.csr -signkey privateKey.key
Ein Passwort von einem Private-Key löschen
openssl rsa -in privateKey.pem -out newPrivateKey.pem
Eine Anforderung auf Basis einer bestehenden Config mit einem bestehenden Private Key neu erstellen
openssl.exe req -config openssl.cnf -key private.key -new -out exchange20151215.csr
Wenn du die Informationen in einer Zertifikatsanforderung, einem Zertifikat oder einem Private-Key prüfen musst, verwende die folgenden Befehle:
Eine Zertifikatsanforderung prüfen
openssl req -text -noout -verify -in CSR.csr
Einen Private-Key prüfen
openssl rsa -in privateKey.key -check
Ein Zertifikat prüfen
openssl x509 -in certificate.crt -text -noout
Eine PKCS#12-Datei prüfen (.pfx oder .p12)
openssl pkcs12 -info -in keyStore.p12
Wenn du einen Fehler erhälst, dass der Private-Key nicht zu der Anforderung oder dem Zertifikat passt, versuche folgende Befehle:
Prüfe den MD5-Hash des öffentlichen Schlüssels um sicherzugehen, dass dieser zu einer Zertifikatsanforderung oder einem privaten Schlüssel passt.
openssl x509 -noout -modulus -in certificate.crt | openssl md5 openssl rsa -noout -modulus -in privateKey.key | openssl md5 openssl req -noout -modulus -in CSR.csr | openssl md5
Eine SSL-Verbindung prüfen. Es sollten alle verwendeten Zertifikate inklusive Zertifizierungspfade angezeigt werden.
openssl s_client -connect www.paypal.com:443
Diese Befehle erlauben dir, Zertifikate und private Schlüssel in unterschiedliche Formate zu konvertieren, um mit verschiedenen Serverarten und Softwareprodukten zurecht zu kommen. Du kannst eine normale PEM-Schlüsseldatei (Apache) zu einer PFX-Datei (PKCS#12) konvertieren, um diese in Tomcat oder dem IIS zu verwenden.
Eine DER-Datei (.crt .cer .der) zu PEM konvertieren
openssl x509 -inform der -in certificate.cer -out certificate.pem -outform PEM
Eine PEM-Datei zu DER konvertieren
openssl x509 -outform der -in certificate.pem -out certificate.der
Eine PKCS#12-Datei (.pfx .p12) zu PEM konvertieren.
openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
Die Option -nocerts eintragen um nur die Schlüssel zu extrahieren und -nokeys um nur die Zertifikate zu erhalten.
Eine PEM-Zertifikatsdatei und einen privaten Schlüssel zu PKCS#12 (.pfx .p12) konvertieren
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
Key aus PFX exportieren
openssl pkcs12 -in certname.pfx -nocerts -out key.pem -noenc
(-nodes ist deprecated, stattdessen -noenc nutzen, damit der Key unverschlüsselt gespeichert wird)
Zertifikat aus PFX exportieren
openssl pkcs12 -in certname.pfx -nokeys -out cert.pem
Zertifikat aus PFX mit Kette exportieren
openssl pkcs12 -in certname.pfx -nokeys -chain -out cert.pem
Ausgabeformat
Standardmäßig sind alle Ausgaben von openssl im PEM-Format, Postfix erwartet alle Certs und Keys ebenfalls im PEM-Format.
Quelle: https://www.sslshopper.com/article-most-common-openssl-commands.html, http://apetec.com/support/GenerateSAN-CSR.htm, https://beta.openssl.org/docs/manmaster/man1/openssl-pkcs12.html
openssl s_client -connect www.contoso.com:443
In der Textausgabe ist auch das öffentliche Serverzertifikat zu finden.