21 OpenSSL-Beispiele, die Ihnen in der realen Welt helfen

Erstellen, verwalten und konvertieren Sie SSL-Zertifikate mit OpenSSL

Einer der beliebtesten Befehle in SSL zum Erstellen, Konvertieren und Verwalten von SSL-Zertifikaten ist OpenSSL.

Es wird viele Situationen geben, in denen Sie auf unterschiedliche Weise mit OpenSSL umgehen müssen, und hier habe ich sie als praktisches Spickzettel für Sie aufgelistet.

In diesem Artikel werde ich über häufig verwendete OpenSSL-Befehle sprechen, um Ihnen in der realen Welt zu helfen.

Einige der Abkürzungen beziehen sich auf Zertifikate.

  • SSL – Secure Socket Layer
  • CSR – Zertifikatsignierungsanforderung
  • TLS – Transport Layer Security
  • PEM – Privacy Enhanced Mail
  • DER – Distinguished Encoding Rules
  • SHA – Sicherer Hash-Algorithmus
  • PKCS – Public-Key-Kryptografiestandards

Notiz: SSL/TLS-Betriebskurs wäre hilfreich, wenn Sie mit den Begriffen nicht vertraut sind.

Erstellen Sie einen neuen privaten Schlüssel und eine Zertifikatsignieranforderung

openssl req -out wdzwdz.csr -newkey rsa:2048 -nodes -keyout wdzwdz.key

Der obige Befehl generiert CSR und eine 2048-Bit-RSA-Schlüsseldatei. Wenn Sie beabsichtigen, dieses Zertifikat in Apache oder Nginx zu verwenden, müssen Sie diese CSR-Datei an die Zertifizierungsstelle senden, die Ihnen ein signiertes Zertifikat, meist im Der- oder Pem-Format, gibt, das Sie im Apache- oder Nginx-Webserver konfigurieren müssen .

Erstellen Sie ein selbstsigniertes Zertifikat

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Der obige Befehl generiert ein selbstsigniertes Zertifikat und eine Schlüsseldatei mit 2048-Bit-RSA. Ich habe auch sha256 aufgenommen, da es im Moment als am sichersten gilt.

Tipp: Standardmäßig wird ein selbstsigniertes Zertifikat generiert, das nur einen Monat gültig ist. Sie können also erwägen, den Parameter –days zu definieren, um die Gültigkeit zu verlängern.

Bsp.: zwei Jahre lang selbst unterzeichnet sein.

openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Überprüfen Sie die CSR-Datei

openssl req -noout -text -in wdzwdz.csr

Die Überprüfung ist unerlässlich, um sicherzustellen, dass Sie CSR mit den erforderlichen Details an die Ausstellerbehörde senden.

  Steigern Sie Ihren Umsatz mit cleveren FOMO-Marketingstrategien

Erstellen Sie einen privaten RSA-Schlüssel

openssl genrsa -out private.key 2048

Wenn Sie nur einen privaten RSA-Schlüssel generieren müssen, können Sie den obigen Befehl verwenden. Ich habe 2048 für eine stärkere Verschlüsselung eingefügt.

Entfernen Sie die Passphrase aus dem Schlüssel

openssl rsa -in certkey.key -out nopassphrase.key

Wenn Sie eine Passphrase in der Schlüsseldatei verwenden und Apache verwenden, müssen Sie bei jedem Start das Passwort eingeben. Wenn Sie sich über die Eingabe eines Passworts ärgern, können Sie mit dem obigen openssl rsa -in wdzwdz.key -check den Passphrase-Schlüssel aus einem vorhandenen Schlüssel entfernen.

Verifizieren Sie den privaten Schlüssel

openssl rsa -in certkey.key –check

Wenn Sie an Ihrer Schlüsseldatei zweifeln, können Sie den obigen Befehl zur Überprüfung verwenden.

Überprüfen Sie die Zertifikatsdatei

openssl x509 -in certfile.pem -text –noout

Wenn Sie Zertifikatsdaten wie CN, OU usw. validieren möchten, können Sie einen obigen Befehl verwenden, der Ihnen Zertifikatsdetails liefert.

Überprüfen Sie die Zertifizierungsstelle

openssl x509 -in certfile.pem -noout -issuer -issuer_hash

Die Zertifizierungsstelle signiert jedes Zertifikat und falls Sie es überprüfen müssen.

Überprüfen Sie den Hash-Wert eines Zertifikats

openssl x509 -noout -hash -in bestflare.pem

Konvertieren Sie DER in das PEM-Format

openssl x509 –inform der –in sslcert.der –out sslcert.pem

Normalerweise gibt Ihnen die Zertifizierungsstelle ein SSL-Zertifikat im .der-Format, und wenn Sie sie im Apache- oder .pem-Format verwenden müssen, hilft Ihnen der obige Befehl.

Konvertieren Sie PEM in das DER-Format

openssl x509 –outform der –in sslcert.pem –out sslcert.der

Falls Sie das .pem-Format in .der ändern müssen

Konvertieren Sie das Zertifikat und den privaten Schlüssel in das PKCS#12-Format

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem

Wenn Sie ein Zertifikat mit der Java-Anwendung oder mit einer anderen verwenden müssen, die nur das PKCS#12-Format akzeptiert, können Sie den obigen Befehl verwenden, der ein einzelnes pfx mit Zertifikat und Schlüsseldatei generiert.

  Die 9 besten Python-Frameworks zum Erstellen von kleinen bis hin zu Unternehmensanwendungen

Tipp: Sie können auch ein Kettenzertifikat einschließen, indem Sie –chain wie unten übergeben.

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem

Erstellen Sie CSR mit einem vorhandenen privaten Schlüssel

openssl req –out certificate.csr –key existing.key –new

Wenn Sie keinen neuen privaten Schlüssel erstellen möchten, anstatt einen vorhandenen zu verwenden, können Sie mit dem obigen Befehl fortfahren.

Überprüfen Sie den Inhalt des Zertifikats im PKCS12-Format

openssl pkcs12 –info –nodes –in cert.p12

PKCS12 ist ein Binärformat, sodass Sie den Inhalt nicht in Notepad oder einem anderen Editor anzeigen können. Der obige Befehl hilft Ihnen, den Inhalt der PKCS12-Datei anzuzeigen.

Konvertieren Sie das PKCS12-Format in ein PEM-Zertifikat

openssl pkcs12 –in cert.p12 –out cert.pem

Wenn Sie das vorhandene pkcs12-Format mit Apache oder nur im pem-Format verwenden möchten, ist dies nützlich.

Testen Sie das SSL-Zertifikat einer bestimmten URL

openssl s_client -connect yoururl.com:443 –showcerts

Ich verwende dies ziemlich oft, um das SSL-Zertifikat einer bestimmten URL vom Server zu validieren. Dies ist sehr praktisch, um das Protokoll, die Chiffre und die Zertifikatsdetails zu validieren.

Finden Sie die OpenSSL-Version heraus

openssl version

Wenn Sie dafür verantwortlich sind, dass OpenSSL sicher ist, müssen Sie wahrscheinlich als Erstes die Version überprüfen.

Überprüfen Sie das Ablaufdatum des PEM-Dateizertifikats

openssl x509 -noout -in certificate.pem -dates

Nützlich, wenn Sie vorhaben, eine Überwachung durchzuführen, um die Gültigkeit zu überprüfen. Es zeigt Ihnen ein Datum in notBefore- und notAfter-Syntax. notAfter ist eine, die Sie überprüfen müssen, um zu bestätigen, ob ein Zertifikat abgelaufen oder noch gültig ist.

  So ändern Sie das Verzeichnis in der Eingabeaufforderung (CMD)

Ex:

[[email protected] opt]# openssl x509 -noout -in bestflare.pem -dates
notBefore=Jul 4 14:02:45 2015 GMT
notAfter=Aug 4 09:46:42 2015 GMT
[[email protected] opt]#

Überprüfen Sie das Ablaufdatum des Zertifikats der SSL-URL

openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate

Ein weiteres nützliches Tool, wenn Sie das Ablaufdatum des SSL-Zertifikats aus der Ferne oder eine bestimmte URL überwachen möchten.

Ex:

[[email protected] opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate

notAfter=Dec 8 00:00:00 2015 GMT

Überprüfen Sie, ob SSL V2 oder V3 für die URL akzeptiert wird

Um SSL V2

openssl s_client -connect secureurl.com:443 -ssl2

Zur Überprüfung von SSL V3

openssl s_client -connect secureurl.com:443 –ssl3

So überprüfen Sie TLS 1.0

openssl s_client -connect secureurl.com:443 –tls1

So überprüfen Sie TLS 1.1

openssl s_client -connect secureurl.com:443 –tls1_1

So überprüfen Sie TLS 1.2

openssl s_client -connect secureurl.com:443 –tls1_2

Wenn Sie einen Webserver sichern und überprüfen müssen, ob SSL V2/V3 aktiviert ist oder nicht, können Sie den obigen Befehl verwenden. Wenn aktiviert, erhalten Sie „VERBUNDEN“, ansonsten „Handshake-Fehler“.

Überprüfen Sie, ob die bestimmte Chiffre für die URL akzeptiert wird

openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443

Wenn Sie an Sicherheitsergebnissen arbeiten und Pentestergebnisse zeigen, dass einige der schwachen Chiffren akzeptiert werden, können Sie den obigen Befehl zur Validierung verwenden.

Natürlich müssen Sie die Chiffre und die URL ändern, gegen die Sie testen möchten. Wenn die erwähnte Chiffre akzeptiert wird, erhalten Sie „VERBUNDEN“, sonst „Handshake-Fehler“.

Ich hoffe, die obigen Befehle helfen Ihnen, mehr über OpenSSL zu erfahren, um SSL-Zertifikate für Ihre Website zu verwalten.