OpenSSL arbeitet mit den SSL- und TLS -Protokollen zusammen. Wir werden die verschiedenen Möglichkeiten darüber abdecken, wie Sie die OpenSSL S_CLIENT verwenden können, um Ihre SSL -Verbindungen zu testen und zu überprüfen.
OpenSSL S_Client -Verwendungsbeispiele
Das OpenSSL Toolkit bietet viele Optionen, die Sie angeben können, um verschiedene Ziele zu erreichen.
1. Testen Sie die Verbindung
Um Ihre HTTPS -Service -Konnektivität zu testen und die diagnostischen Informationen zur SSL -Verbindung zu einem bestimmten Server anzeigen, einschließlich Informationen wie Zertifikatskette, müssen Sie die verwenden -verbinden Flagge.
$ openssl s_client - verbinden Sie [Ihre Domain].com: 443
Wir verwenden Port 443, da er für sichere HTTP gegenüber TLS/SSL bevorzugt wird. Die Ausgabe des Befehls zeigt grundlegende Details zur Verbindung an, die Sie mit dem Server festlegen.
Zum Beispiel werden wir verwenden Kyle.com als Server.
2. Drucken Sie alle Zertifikate
Der SSL -Service präsentiert Zertifikatsketten und Sie können alle anzeigen, was hilfreich ist, wenn Sie Probleme mit Zertifikaten wie Fehlbestellenzertifikaten beheben müssen.
$ openssl s_client -connect Kyle.com: 443 -showcerts
Die Ausgabe zeigt die verschiedenen Zertifikate an, wie sie im folgenden Bild reflektiert werden:
Sie können jedes der vom Server vom Ausgang zurückgegebenen Zertifikate manuell inspizieren.
3. Überprüfen Sie die Gültigkeit des Zertifikats
Sobald Sie die vom Server zurückgegebene Zertifikatekette erhalten haben, können Sie testen, wie gültig sie sind.
$ openssl s_client -connect Kyle.com: 443 -brief
Um die Gültigkeit zu bestätigen, suchen Sie nach dem Überprüfung, und seine Ausgabe sollte lesen "OK".
Der -knapp Flag hilft die Ausgabe, indem sie einige ausführliche Details ausschließen.
In unserem Fall bestätigen wir, dass unsere Zertifikate gültig sind.
4. Überprüfen Sie die Ablaufdaten für die Zertifikat
Mit dem OpenSSL S_CLIENS können Sie die Ablaufdaten des Zertifikats der Website über die Befehlszeile überprüfen. Hier müssen Sie zwei Befehle kombinieren, wie sie unten reflektiert werden:
$ openssl s_client -connect Kyle.com: 443 2> /dev /null | OpenSSL x509 -nout -dates
Der -Nein Flag unterdrückt den Befehl das Anzeigen des codierten Zertifikats.
Die Ausgabe zeigt den Bereich, wenn die Zertifikate ablaufen. Als Systemadministrator sind solche Details von entscheidender Bedeutung, da Sie wissen, wann Sie ein neues Zertifikat erhalten müssen.
5. Überprüfen Sie die SSL -Verbindung
Verwenden Sie den Status der SSL -Verbindung zu Ihrem Server, um den Status der SSL -Verbindung zu überprüfen -verify_return_error Flagge.
$ OpenSSL S_CLIENT -VERIFY_RETURN_ERROR -CONNECT KYLE.com: 443
Wenn die Verbindung erfolgreich ist, wird der Handschlag vergehen. Wenn Sie jedoch Fehler sehen, bedeutet dies, dass der SSL -Handshake fehlgeschlagen ist und keine Verbindung hergestellt werden kann.
6. Sehen Sie sich den Fingerabdruck für das SSL -Zertifikat an
SSL -Zertifikate haben einen Fingerabdruck. Sie können den Fingerabdruck eines Zertifikats erhalten, wie in Folgendes gezeigt:
$ openssl s_client -connect Kyle.com: 443 2> /dev /null | OpenSSL X509 -nout -Fingerabdruck
7. Geben Sie die Chiffre an
Sie können angeben, welche Verschlüsselung oder Verschlüsselungstyp für das Zertifikat mit dem verwendet werden soll -Chiffre Flagge. Zum Beispiel können wir angeben, um die zu verwenden DHE-PSK-AES128-CBC-SHA. Auf diese Weise muss die Client-Seite die angegebene Cipher-Suite für die Verbindung verwenden.
$ openssl s_client -connect Kyle.com: 443 -Cipher dhe-psk-aes128-cbc-Sha
Sie können die Liste der verfügbaren Chiffren mit dem folgenden Befehl anzeigen:
$ OpenSSL Chiffren
Die Ausgabe sollte dem folgenden Bild ähnlich aussehen:
8. Geben Sie die SSL/TLS -Version und die zu verwendenden Chiffriken an
Die s_client verhandelt standardmäßig, welche Protokollversion für SSL/TL verwendet wird. Dennoch können Sie angeben, welche Versionen mit einer der folgenden Optionen verwendet werden sollen:
Bevor Sie angeben, welche Chiffren zu verwenden sind, können Sie zunächst die unterstützten Versionen überprüfen. Im folgenden Beispiel werden wir das überprüfen tls1_3 Versionen.
Der Befehl lautet wie folgt:
$ OpenSSL Cipheers -s -tls1_3
Die unterstützten Chiffren sind:
Wenn Sie eine bestimmte SSL/TLS -Version für die Verbindung angeben möchten, müssen Sie sie nur beim Testen Ihrer Verbindung hinzufügen, wie im folgenden Fall:
$ openssl s_client -connect Kyle.com: 443 -tls1_3
Wenn Sie keine bestimmte Version verwenden möchten, bereiten Sie a vor NEIN_ zum Namen. Ein Beispiel für die Deaktivierung tls1_1 wäre NO_TLS1_1. In einem solchen Fall werden die anderen Protokollversionen verwendet.
9. Senden Sie eine protokollspezifische Nachricht
Die OpenSSL unterstützt verschiedene Protokolle wie FTP, IRC, SMTP, LDAP, POP3, IMAP usw. Wenn Sie die Verbindung mit einem bestimmten Protokoll testen oder angeben müssen, welches Protokoll für die Kommunikation verwendet werden soll, können Sie die verwenden -Starttls Flagge.
Verwenden Sie zum Beispiel zum Testen des HFTP -Zertifikats den folgenden Befehl:
$ openssl s_client -connect Kyle.com: 443 -starttls ftp -servername kyle.com
10. Überprüfen Sie den Hostnamen
Verwenden Sie die Hostname, um den Hostnamen zu überprüfen -verify_hostname. Wenn der Hostname nicht übereinstimmt, erhalten Sie eine Überprüfungsfehlermeldung wie die folgende:
Wenn dies der Fall ist, müssen Sie ein Zertifikat mit einem SAN oder CN erhalten, das Ihrer Domain entspricht.
Abschluss
Das OpenSSL -Toolkit verfügt über endlose Optionen, mit denen Sie Ihr Bedürfnis bedienen können. Wir haben die gemeinsamen behandelt, aber die Hauptseite ist die beste Ressource, wenn Sie mehr erkunden müssen. Das Erlernen der OpenSSL erleichtert Ihr Leben, wenn Sie mit Servern und Verbindungen für alle Systemverwaltungsaufgaben umgehen. Machen Sie daher einen Punkt, um den Befehl zu üben.