Erstellen, Verwalten und Konvertieren von SSL-Zertifikaten mit OpenSSL

Einer der beliebtesten Befehle in SSL an erstellen, konvertieren, verwalten den SSL-Zertifikate ist OpenSSL.

Es wird viele Situationen geben, in denen Sie auf verschiedene Weise mit OpenSSL umgehen müssen, und hier habe ich sie für Sie als praktischen Spickzettel 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 - Zertifikatssignierungsanforderung
  • TLS - Transport Layer Security
  • PEM - Privacy Enhanced Mail
  • DER - Distinguished Encoding Rules
  • SHA - Sicherer Hash-Algorithmus
  • PKCS - Public-Key-Kryptografiestandards

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

Create a new Private Key and Certificate Signing Request

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

Der obige Befehl generiert CSR und eine 2048-Bit-RSA-Schlüsseldatei. Wenn Sie dieses Zertifikat in Apache oder Nginx verwenden möchten, müssen Sie diese CSR-Datei an die Zertifizierungsstelle des Zertifikats senden. Dort erhalten Sie meistens ein signiertes Zertifikat der or pem Format, in dem Sie konfigurieren müssen Apache or Nginx Webserver.

Create a Self-Signed Certificate

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 aufgenommen sha256 da es im Moment als am sichersten gilt.

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

Ex: selbst unterschrieben haben zwei Jahre gültig.

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

Verify CSR file

openssl req -noout -text -in geekflare.csr

Die Überprüfung ist wichtig, um sicherzustellen, dass Sie CSR mit den erforderlichen Details an die Emittentenbehörde senden.

Create RSA Private Key

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 aufgenommen.

Remove Passphrase from Key

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

Wenn Sie eine Passphrase in einer Schlüsseldatei verwenden und Apache verwenden, müssen Sie bei jedem Start das Kennwort eingeben. Wenn Sie sich über die Eingabe eines Passworts ärgern, können Sie den oben genannten Befehl openssl rsa -in geekflare.key -check verwenden, um den Passphrasenschlüssel aus einem vorhandenen Schlüssel zu entfernen.

Verify Private Key

openssl rsa -in certkey.key –check

Wenn Sie an Ihrer Schlüsseldatei zweifeln, können Sie dies mit dem obigen Befehl überprüfen.

Verify Certificate File

openssl x509 -in certfile.pem -text –noout

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

Verify the Certificate Signer Authority

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

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

Check Hash Value of A Certificate

openssl x509 -noout -hash -in bestflare.pem

Convert DER to PEM format

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

Normalerweise erhalten Sie von der Zertifizierungsstelle ein SSL-Zertifikat im .der-Format. Wenn Sie es im Apache- oder .pem-Format verwenden müssen, hilft Ihnen der obige Befehl.

Convert PEM to DER format

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

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

Convert Certificate and Private Key to 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 anderen verwenden müssen, die nur das PKCS # 12-Format akzeptieren, können Sie den obigen Befehl verwenden, der einen einzelnen pfx generiert, der eine Zertifikat- und Schlüsseldatei enthält.

Tip: Sie können das Kettenzertifikat auch einschließen, indem Sie –chain wie folgt übergeben.

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

Create CSR using an existing private key

openssl req –out zertifikat.csr –schlüssel existent.schlüssel –neu

Wenn Sie keinen neuen privaten Schlüssel erstellen möchten, anstatt einen vorhandenen zu verwenden, können Sie den obigen Befehl ausführen.

Check contents of PKCS12 format cert

openssl pkcs12 –info –nodes –in cert.p12

PKCS12 ist ein Binärformat, sodass Sie den Inhalt nicht im Editor oder einem anderen Editor anzeigen können. Mit dem obigen Befehl können Sie den Inhalt der PKCS12-Datei anzeigen.

Convert PKCS12 format to PEM certificate

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 hilfreich.

Test SSL certificate of particular URL

openssl s_client -connect yoururl.com:443 –showcerts

Ich benutze dies ziemlich oft, um das SSL-Zertifikat einer bestimmten URL vom Server zu validieren. Dies ist sehr praktisch, um die Protokoll-, Verschlüsselungs- und Zertifikatdetails zu überprüfen.

Find out OpenSSL version

Openssl-Version

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

Check PEM File Certificate Expiration Date

openssl x509 -noout -in certificate.pem -dates

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

Ex:

[[E-Mail geschützt] opt] # openssl x509 -noout -in bestflare.pem -dates
nicht bevor= 4. Juli 14:02:45 2015 GMT
nicht danach= 4. August 09:46:42 2015 GMT [[E-Mail geschützt] opt] #

Check Certificate Expiration Date of SSL URL

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

Ein weiterer nützlicher Punkt, wenn Sie das Ablaufdatum des SSL-Zertifikats oder eine bestimmte URL remote überwachen möchten.

Ex:

[[E-Mail geschützt] opt] # openssl s_client -connect google.com:443 2> / dev / null | openssl x509 -noout -enddate

nicht danach= 8. Dezember 00:00:00 2015 GMT

Check if SSL V2 or V3 is accepted on URL

So überprüfen Sie SSL V2

openssl s_client -connect secureurl.com:443 -ssl2

So überprüfen Sie 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 sich Sichern eines Webservers Wenn Sie überprüfen müssen, ob SSL V2 / V3 aktiviert ist oder nicht, können Sie den obigen Befehl verwenden. Wenn aktiviert, erhalten Sie “IN VERBINDUNG GEBRACHT"Sonst"Handshake-Fehler"

Verify if the particular cipher is accepted on URL

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

Wenn Sie an Sicherheitsergebnissen arbeiten und die Ergebnisse von Stifttests zeigen, dass einige der schwachen Chiffren akzeptiert werden, können Sie zur Validierung den obigen Befehl 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 “IN VERBINDUNG GEBRACHT"Sonst"Handshake-Fehler"

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