====== 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]}}