Accueil·Commandes du terminal

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

OptionSignification
-connect host:443Where to open the TLS connection.
-servername <host>The SNI name. Without it a shared host serves its default certificate.
-showcertsPrint the whole chain the server sent, not just the leaf.
-tls1_2 / -tls1_3Force one protocol version, to test what the server still accepts.
-verify_return_errorFail instead of continuing when the chain does not validate.
< /dev/nullClose 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 -dates

When the certificate expires.

openssl s_client -connect example.com:443 -showcerts < /dev/null

Inspect 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