OpenSSL fonctionne avec les protocoles SSL et TLS. Nous couvrirons les différentes façons sur la façon d'utiliser l'OpenSSL S_Client pour tester et vérifier vos connexions SSL.
OpenSSL S_Client Exemples d'utilisation
La boîte à outils OpenSSL offre de nombreuses options que vous pouvez spécifier pour atteindre différents objectifs.
1. Tester la connexion
Pour tester votre connectivité de service HTTPS et afficher les informations de diagnostic liées à la connexion SSL à un serveur donné, y compris des informations telles que la chaîne de certificat, vous devez utiliser le -connecter drapeau.
$ openssl s_client - connectez [votredomain].com: 443
Nous utilisons le port 443 car il est préféré pour HTTP sécurisé sur TLS / SSL. La sortie de la commande affiche des détails de base sur la connexion que vous établissez avec le serveur.
Par exemple, nous utiliserons kyle.com Comme le serveur.
2. Imprimer tous les certificats
Le service SSL présente des chaînes de certificat, et vous pouvez les afficher toutes, ce qui est utile lorsque vous avez besoin de résoudre des problèmes de certificat tels que des certificats de mauvaise commande.
$ openssl s_client -connect kyle.com: 443 -shownerts
La sortie affichera les différents certificats comme reflété dans l'image suivante:
Vous pouvez inspecter manuellement chacun des certificats renvoyés par le serveur à partir de la sortie.
3. Vérifiez la validité du certificat
Une fois que la chaîne de certificats est renvoyée par le serveur, vous pouvez tester à quel point ils sont valides.
$ openssl s_client -connect kyle.com: 443 -Brief
Pour confirmer la validité, recherchez le Vérification, Et sa sortie devrait lire "D'ACCORD".
Le -bref Le drapeau aide à réduire la sortie en excluant certains détails verbeux.
Dans notre cas, nous confirmons que nos certificats sont valides.
4. Vérifiez les dates d'expiration du certificat
En utilisant l'OpenSSL S_Client, vous pouvez vérifier les dates d'expiration du certificat du site Web à partir de la ligne de commande. Ici, vous devrez combiner deux commandes comme reflété ci-dessous:
$ openssl s_client -connect kyle.com: 443 2> / dev / null | OpenSSL X509 -Noout -Dates
Le -noout Le drapeau supprime la commande de l'affichage du certificat codé.
La sortie montre la plage lorsque les certificats expireront. En tant qu'administrateur système, ces détails sont essentiels car vous apprenez quand vous devez obtenir un nouveau certificat.
5. Vérifiez la connexion SSL
Pour vérifier l'état de la connexion SSL à votre serveur, utilisez le -Verify_return_error drapeau.
$ openssl s_client -verify_return_error -connect kyle.com: 443
Si la connexion réussit, la poignée de main passera. Mais si vous voyez des erreurs, cela signifie que la poignée de main SSL a échoué et qu'aucune connexion ne peut être établie.
6. Afficher l'empreinte digitale du certificat SSL
Les certificats SSL ont une empreinte digitale. Vous pouvez obtenir l'empreinte digitale d'un certificat comme indiqué dans ce qui suit:
$ openssl s_client -connect kyle.com: 443 2> / dev / null | OpenSSL X509 -NOOUT -FINGERPRINT
7. Spécifiez le chiffre
Vous pouvez spécifier le type de chiffrement ou de chiffrement à utiliser pour le certificat à l'aide du -chiffrer drapeau. Par exemple, nous pouvons spécifier d'utiliser le DHE-PSK-AES128-CBC-SHA. Ce faisant, le côté client devra utiliser la suite de chiffre d'affaires spécifiée pour la connexion.
$ openssl s_client -connect kyle.com: 443 -CIPHER DHE-PSK-AES128-CBC-SHA
Vous pouvez afficher la liste des chiffres disponibles en utilisant la commande suivante:
$ OpenSSL Ciphers
La sortie doit ressembler à l'image suivante:
8. Spécifiez la version SSL / TLS et les chiffres à utiliser
Le S_Client, par défaut, négocie quelle version de protocole pour SSL / TL à utiliser. Néanmoins, vous pouvez spécifier les versions à utiliser en utilisant l'une des options suivantes:
De plus, avant de spécifier les chiffres à utiliser, vous pouvez d'abord vérifier les versions prises en charge. Dans l'exemple suivant, nous vérifierons le TLS1_3 versions.
La commande est la suivante:
$ OpenSSL CIPHERS -S -TLS1_3
Les chiffres pris en charge sont:
Si vous souhaitez spécifier une version SSL / TLS donnée pour la connexion, vous n'avez besoin de l'ajouter que lorsque vous testez votre connexion, comme dans le cas ci-dessous:
$ openssl s_client -connect kyle.com: 443 -tls1_3
Si vous ne souhaitez pas utiliser une version donnée, ajoutez un Non_ au nom. Un exemple de désactivation TLS1_1 serait NO_TLS1_1. Dans un tel cas, les autres versions de protocole seront utilisées.
9. Envoyer un message spécifique au protocole
L'OpenSSL prend en charge différents protocoles, tels que FTP, IRC, SMTP, LDAP, POP3, IMAP, etc. Lorsque vous devez tester la connexion à l'aide d'un protocole spécifique ou spécifier le protocole à utiliser pour la communication, vous pouvez utiliser le -starttls drapeau.
Par exemple, pour tester le certificat HFTP, utilisez la commande suivante:
$ openssl s_client -connect kyle.com: 443 -starttls ftp -servername kyle.com
dix. Vérifiez le nom d'hôte
Pour vérifier le nom d'hôte, utilisez le -Verify_hostname. Si le nom d'hôte ne correspond pas, vous obtiendrez un message d'erreur de vérification comme celui ci-dessous:
Si tel est le cas, vous devez obtenir un certificat avec un SAN ou CN qui correspond à votre domaine.
Conclusion
La boîte à outils OpenSSL a des options infinies que vous pouvez utiliser pour répondre à vos besoins. Nous avons couvert les communs, mais la page principale est votre meilleure ressource si vous avez besoin d'explorer plus. L'apprentissage de l'OpenSSL vous facilitera la vie lorsque vous traitez avec des serveurs et des connexions pour toutes les tâches d'administration du système. Par conséquent, faites un point pour pratiquer la commande.