====== OpenSSL Kommandos ======
===== Neue Zertifikate, Anforderungen oder Schlüssel erzeugen =====
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
===== Prüfungen mit Hilfe von OpenSSL =====
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
===== Debugging mit Open SSL =====
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
===== Mit OpenSSL konvertieren =====
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]]
===== Öffentliches Zertifikat abrufen =====
openssl s_client -connect www.contoso.com:443
In der Textausgabe ist auch das öffentliche Serverzertifikat zu finden.
[[https://serverfault.com/questions/139728/how-to-download-the-ssl-certificate-from-a-website|Quelle]]
{{tag>[Zertifikat SSL OpenSSL]}}