OpenSSL est une librairie libre SSL disponible dans toutes les distributions Linux.
Il fournit aussi différentes fonctionnalités et outils pour les opérations liées à SSL/TLS.
s_client est une sous commande utilisée pour se connecter, vérifier, lister les information TLS/SSL.
Nous pouvons simplement vérifier la connexion TLS/SSL à distance avec s_client dans le cas d’un serveur WEB en HTTPS ou d’un serveur SMTP.
Ainsi il est possible de debuger et résoudre les problèmes de connexion SSL.
Dans ce tutoriel, nous examinerons différents cas d’utilisation de s_client d’OpenSSL.

Table des matières
Comment utiliser OpenSSL s_client pour vérifier et vérifier SSL/TLS
Vérifier une connexion SSL/TLS d’un site HTTPS
Grâce à ces sous-commandes, openSSL se fera passer pour un programme client et vous montrera les résultats de sa négociation SSL/TLS avec le serveur.
Vous pouvez indiquer à s_client quel protocole utiliser ou ne pas utiliser. Les options -ssl2, -ssl3, -tls1, -tls1_1 et -tls1_2 obligent s_client à utiliser uniquement SSLv2, SSLv3, TLSv1.0, TLSv1.1 ou TLS1.2, respectivement.
Il n’essaiera pas d’utiliser une autre version. Il existe également des options pour empêcher l’utilisation d’une (ou de plusieurs) version(s) de protocole particulière(s) pendant la négociation. Ils ont les mêmes noms mais avec « no_ » préfixé à la version ; par exemple, -no_ssl2. Il existe une page de manuel pour la sous-commande (« man s_client ») qui répertorie ses options.
Pour comprendre l’établissement d’une connexion sécurisée HTTPs, lire :
Voici la syntaxe simple d’openssl afin de télécharger le certificat SSL d’un site et vérifier la connexion TLS :
openssl s_client -connect www.malekal.com:443
Tout au début, on obtient la chaîne de certification.
Puis la négociation SSL puis les informations avec le type de chiffrement (Cipher), la clé publique.
---
SSL handshake has read 2511 bytes and written 387 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 256 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
Protocol : TLSv1.3
Cipher : TLS_AES_256_GCM_SHA384
Session-ID: 4B8AA4BB3723A95D1CE216A0B52E4A32BF2DF2765219E7E173D44220C3A1CA77
Session-ID-ctx:
Resumption PSK: DC9AEEE1811395A7BCC89CAC87447504FB31D28D6FCC4A410B1A738A387ECCBD3A3FDD365F518ACA8539300C7B577686
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 64800 (seconds)
TLS session ticket:
Pour afficher la chaîne de certification complète, utilisez l’option -showcerts :
openssl s_client -showcerts -servername www.malekal.com -connect www.malekal.com:443 2>/dev/null
Pour vérifier la connexion SSL en spécifiant un certificat d’autorité :
openssl s_client -connect www.malekal.com:443 -CAfile /etc/ssl/CA.crt
On peut aussi spécifier un chemin contenant des certificats d’autorité :
openssl s_client -port 443 -CApath /usr/share/ssl/certs/ -host www.malekal.com -prexit
Spécifier le type de chiffrement ou de chiffrement (cipher) :
openssl s_client -connect www.malekal.com:443 -cipher RC4-SHA
Pour vérifier la connexion SSL en désactivant TLS1 et TLS 2 :
openssl s_client -connect www.malekal.com:443 -tls1_2
Désactiver SSL2 dans la vérification de la connexion SSL :
openssl s_client -connect www.malekal.com:443 -no_ssl2
Ainsi on peut vérifier la version TLS ou SSL avec OpenSSL avec les paramètres suivants :
- -ssl2
- –ssl3
- –tls1
- -tls1_2
Vérifier la date d’expiration du certificat de l’URL SSL :
openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect www.malekal.com:443
Pour aller plus loin dans la vérification de la configuration SSL de son site HTTPS :
Vérifier une connexion SMTPS
Il est aussi possible d’installer un certificat électronique TLS sur un serveur SMTP.
Cela permet de faire transiter les mails à travers une connexion SMTP entre les serveurs SMTP.
Par exemple avec StartTTLS :
openssl s_client -starttls smtp -connect locahost:25
Liens
- Le chiffrement de données : comment ça marche et pourquoi l’utiliser
- Les sites HTTPs : pourquoi sont-ils sécurisés ?
- Les certificats et signatures électroniques
- Fonctionnement du protocole TLS
- Résoudre les erreur et problèmes de connexion aux sites sécurisés (HTTPS)
- Erreur à l’installation : nom fichier court pas valide