OpenSSL permet de contrôler rapidement certificat, chaîne et négociation TLS depuis une ligne de commande.
Étapes à suivre
-
1
Tester le serveur
Utilisez s_client avec SNI.
-
2
Lire le certificat
Examinez subject, issuer, dates et SAN.
-
3
Vérifier la chaîne
Contrôlez les intermédiaires fournis.
-
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.
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.