Méthode — Inspecter et valider un certificat avec OpenSSL¶
Type : Méthode · Outil : OpenSSL · Difficulté : ⭐ Débutant
Quand l'utiliser¶
- Vérifier le contenu d'un cert qu'on vient de recevoir/générer
- Diagnostiquer un problème TLS (mauvais cert servi, chaîne cassée, dates expirées)
- Auditer un cert distant en prod
- Vérifier qu'une clé privée correspond bien à un cert
- Identifier ce que contient un fichier
.pem/.crt/.p12inconnu
Cette méthode est la boîte à outils universelle d'OpenSSL côté inspection. À combiner avec Formats de certificats pour savoir d'abord à quoi on a affaire.
Inspecter un cert PEM/DER local¶
Affichage complet (lisible)¶
-noout: ne réaffiche pas le PEM brut à la fin-text: affichage humain de tous les champs
Pour un cert DER :
Lecture ciblée — champs précis¶
# Sujet (à qui appartient le cert)
openssl x509 -in cert.pem -noout -subject
# Émetteur (la CA qui l'a signé)
openssl x509 -in cert.pem -noout -issuer
# Dates de validité
openssl x509 -in cert.pem -noout -dates
# Date d'expiration en format lisible
openssl x509 -in cert.pem -noout -enddate
# Numéro de série
openssl x509 -in cert.pem -noout -serial
# Empreinte (fingerprint) SHA-256
openssl x509 -in cert.pem -noout -fingerprint -sha256
# SAN (Subject Alternative Name)
openssl x509 -in cert.pem -noout -ext subjectAltName
# Toutes les extensions
openssl x509 -in cert.pem -noout -ext "extendedKeyUsage,keyUsage,basicConstraints,subjectAltName"
# Hash du cert (utile pour les liens dans /etc/ssl/certs/)
openssl x509 -in cert.pem -noout -hash
Vérifier rapidement la fraîcheur¶
# Expire dans moins de 30 jours ? (code retour 0 = oui, 1 = non)
openssl x509 -in cert.pem -noout -checkend $((30*24*3600))
# Combien de jours avant expiration ?
expiry=$(openssl x509 -in cert.pem -noout -enddate | cut -d= -f2)
echo "Expire le : $expiry"
echo "$(( ($(date -d "$expiry" +%s) - $(date +%s)) / 86400 )) jours restants"
Très utile en script de monitoring.
Inspecter un cert distant (HTTPS)¶
Récupérer la chaîne complète¶
-connect host:port: la cible-servername: indique le SNI (essentiel quand plusieurs vhosts partagent une IP)-showcerts: affiche tous les certs renvoyés (chaîne complète), pas seulement le leaf- `