Guide

Comment vérifier un certificat TLS avec OpenSSL

OpenSSL permet de contrôler rapidement certificat, chaîne et négociation TLS depuis une ligne de commande.

⌚ Environ 3 min de lecture
Voir mes favoris
PKI & Certificats Intermédiaire 15 min

OpenSSL permet de contrôler rapidement certificat, chaîne et négociation TLS depuis une ligne de commande.

Avant de commencer : adaptez toujours les commandes et manipulations à votre environnement. Sur un système de production, prévoyez une sauvegarde ou un retour arrière lorsque l’action peut modifier la configuration.

Étapes à suivre

  1. 1

    Tester le serveur

    Utilisez s_client avec SNI.

  2. 2

    Lire le certificat

    Examinez subject, issuer, dates et SAN.

  3. 3

    Vérifier la chaîne

    Contrôlez les intermédiaires fournis.

  4. 4

    Comparer le nom

    Le SAN doit contenir le hostname utilisé.

Commandes utiles

openssl s_client -connect example.com:443 -servername example.com -showcerts
openssl x509 -in cert.pem -noout -subject -issuer -dates -ext subjectAltName

À retenir

  • Toujours envoyer SNI avec -servername.
  • Ne copiez jamais une clé privée dans un outil public.
Complément technique

HTTPS/TLS : séparer disponibilité HTTP, handshake TLS et identité du certificat

Repères techniques

  • Un port 443 ouvert ne prouve pas qu’un handshake TLS valide aboutit, et un handshake valide ne prouve pas que le code HTTP est 200.
  • Le certificat doit couvrir le nom utilisé via SAN, être dans sa période de validité et présenter une chaîne de confiance complète.
  • Avec SNI, tester l’IP seule peut présenter un certificat différent de celui du nom DNS

OpenSSL + HTTP

Tester le handshake avec le bon servername puis lire le statut HTTP séparément.

openssl s_client -connect example.com:443 -servername example.com -showcerts
curl -I https://example.com/

Pièges spécifiques

  • Ne pas confondre certificat expiré et chaîne intermédiaire manquante : les messages clients diffèrent.
  • Schannel 36874/36888 doit être corrélé au protocole/cipher et au client qui déclenche l’alerte.

Comment valider

  • Le nom, la chaîne, les dates et le protocole sont valides depuis un client représentatif.
  • La requête HTTP atteint le backend attendu et retourne le statut prévu.

Preuves et vérifications

Un port 443 ouvert ne prouve pas qu’un handshake TLS valide aboutit, et un handshake valide ne prouve pas que le code HTTP est 200. Le certificat doit couvrir le nom utilisé via SAN, être dans sa période de validité et présenter une chaîne de confiance complète.

Contrôle de résultat

Le nom, la chaîne, les dates et le protocole sont valides depuis un client représentatif. La requête HTTP atteint le backend attendu et retourne le statut prévu.

Point d’attention

Ne pas confondre certificat expiré et chaîne intermédiaire manquante : les messages clients diffèrent. Avec SNI, tester l’IP seule peut présenter un certificat différent de celui du nom DNS.

Concepts liés

Référence primaire : OpenSSL Documentation — s_client.

♡ 0