openssl s_client
Réseau
Syntaxe
openssl s_client -connect <host>:443 -servername <host>Ouvre une connexion TLS brute pour inspecter le certificat et la poignee de main ; sans `-servername`, un serveur qui heberge plusieurs sites sur une adresse vous renvoie son certificat par defaut, et sans `< /dev/null` il reste a attendre une saisie.
Options courantes
| Option | Signification |
|---|---|
| -connect host:443 | Where to open the TLS connection. |
| -servername <host> | The SNI name. Without it a shared host serves its default certificate. |
| -showcerts | Print the whole chain the server sent, not just the leaf. |
| -tls1_2 / -tls1_3 | Force one protocol version, to test what the server still accepts. |
| -verify_return_error | Fail instead of continuing when the chain does not validate. |
| < /dev/null | Close stdin, or the command sits and waits forever. |
Exemples
openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null | openssl x509 -noout -datesWhen the certificate expires.
openssl s_client -connect example.com:443 -showcerts < /dev/nullInspect the full chain for a missing intermediate.
Quand une connexion échoue, ceux-ci délimitent jusqu’où elle est allée : le nom ne se résout pas, pas de route, ou le port est fermé.
Comment lire
- Les crochets [ ] marquent une partie facultative.
- Les points de suspension … signifient qu’on peut en mettre plusieurs.
- Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.
Questions fréquentes
Q. Que fait openssl s_client ?
Ouvre une connexion TLS brute pour inspecter le certificat et la poignee de main ; sans `-servername`, un serveur qui heberge plusieurs sites sur une adresse vous renvoie son certificat par defaut, et sans `< /dev/null` il reste a attendre une saisie.
Q. Comment l’écrire ?
openssl s_client -connect <host>:443 -servername <host> — les crochets marquent ce qui est facultatif.
Q. Combien d’options valent la peine ?
Il y en a 6 ici ; la liste complète est dans man openssl. Cette commande relève de Réseau.
Commandes liées
page man: man openssl-s_client