Tous les articles SSL SSL et certificats

Aide-memoire des commandes OpenSSL pour les certificats SSL

OpenSSL est le couteau suisse des certificats SSL/TLS. Chaque article de ce site fait reference a des commandes OpenSSL — cette page les rassemble toutes au meme endroit.

Verifier un certificat

Afficher les details du certificat (serveur distant)

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -text

Verifier la date d’expiration

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -enddate

Verifier le sujet et les SANs

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -subject -ext subjectAltName

Verifier l’emetteur (quelle CA)

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -issuer

Verifier un fichier de certificat local

openssl x509 -in cert.pem -noout -text
openssl x509 -in cert.pem -noout -dates          # Juste les dates
openssl x509 -in cert.pem -noout -subject         # Juste le sujet
openssl x509 -in cert.pem -noout -ext subjectAltName  # Juste les SANs

Verifier la chaine de certificats

Verifier la completude de la chaine (distant)

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null
# Recherchez :
#   Verify return code: 0 (ok)          <- La chaine est complete
#   Verify return code: 21 (unable to verify) <- La chaine est incomplete

Verifier un certificat par rapport a un fichier de chaine

openssl verify -CAfile chain.pem cert.pem
# Attendu : cert.pem: OK

Verifier si le certificat et la cle correspondent

# Ces deux hachages doivent etre identiques
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in privkey.pem | openssl md5
# Pour les cles ECDSA :
openssl ec -in privkey.pem -pubout 2>/dev/null | openssl md5
openssl x509 -in cert.pem -pubkey -noout | openssl md5

Generer des cles

ECDSA P-256 (recommande)

openssl ecparam -genkey -name prime256v1 -noout -out privkey.pem

RSA 2048

openssl genrsa -out privkey.pem 2048

RSA 4096

openssl genrsa -out privkey.pem 4096

Generer un CSR

ECDSA

openssl req -new -key privkey.pem -out csr.pem -subj "/CN=example.com"

Avec SANs (multi-domaine)

openssl req -new -key privkey.pem -out csr.pem \
  -subj "/CN=example.com" \
  -addext "subjectAltName=DNS:example.com,DNS:www.example.com"

Inspecter un CSR

openssl req -in csr.pem -noout -text

Qu’est-ce qu’un CSR ? ->

Convertir entre les formats

PEM -> PFX (pour Windows/IIS)

openssl pkcs12 -export -out cert.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem

PFX -> PEM

openssl pkcs12 -in cert.pfx -clcerts -nokeys -out cert.pem
openssl pkcs12 -in cert.pfx -nocerts -nodes -out privkey.pem
openssl pkcs12 -in cert.pfx -cacerts -nokeys -out chain.pem

PEM -> DER

openssl x509 -in cert.pem -outform DER -out cert.der

DER -> PEM

openssl x509 -in cert.der -inform DER -outform PEM -out cert.pem

Les formats de certificats expliques ->

Deboguer les connexions TLS

Tester quelle version TLS est negociee

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | grep "Protocol"

Tester une version TLS specifique

# Tester TLS 1.2
echo | openssl s_client -connect example.com:443 -servername example.com -tls1_2 2>/dev/null | grep "Protocol"

# Tester TLS 1.3
echo | openssl s_client -connect example.com:443 -servername example.com -tls1_3 2>/dev/null | grep "Protocol"

Afficher la poignee de main complete

openssl s_client -connect example.com:443 -servername example.com -msg

Verifier les suites de chiffrement prises en charge

# Lister tous les chiffrements acceptes par le serveur
nmap --script ssl-enum-ciphers -p 443 example.com

Generer un certificat auto-signe (developpement uniquement)

openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
  -keyout key.pem -out cert.pem -days 365 -nodes \
  -subj "/CN=localhost" \
  -addext "subjectAltName=DNS:localhost,IP:127.0.0.1"

Pour un HTTPS localhost de confiance, utilisez plutot mkcert.

Creer fullchain.pem a partir de fichiers separes

cat cert.pem chain.pem > fullchain.pem

L’ordre est important : votre certificat d’abord, puis le(s) intermediaire(s).

Questions frequemment posees

Comment installer OpenSSL ?

La plupart des distributions Linux l’incluent. Sur macOS : brew install openssl. Sur Windows : installez via Git for Windows (inclut OpenSSL) ou Chocolatey (choco install openssl).

Quelle est la difference entre openssl x509 et openssl s_client ?

x509 lit un fichier de certificat local. s_client se connecte a un serveur distant et recupere son certificat. Utilisez s_client pour verifier un serveur en direct ; utilisez x509 pour inspecter un fichier sur le disque.

Pourquoi mes commandes affichent-elles “unable to load certificate” ?

Le fichier est probablement encode en DER (binaire), pas en PEM (texte). Ajoutez -inform DER a la commande :

openssl x509 -in cert.der -inform DER -noout -text

Articles connexes

Déploiement 2026-05-07
Comment vérifier l'expiration d'un certificat SSL
Vérifiez quand votre certificat SSL expire en utilisant votre navigateur, OpenSSL ou des outils en ligne. Mettez en place une surveillance pour éviter une expiration inattendue et des temps d'arrêt.
SSL et certificats 2026-05-07
Formats de certificats SSL : PEM, PFX, DER expliques
Comprendre les formats de certificats PEM, PFX/PKCS#12 et DER. Decouvrez quel format votre serveur necessite et comment convertir entre eux avec OpenSSL.
SSL et certificats 2026-05-07
La chaine de confiance des certificats expliquee
Comment les navigateurs verifient les certificats SSL a travers une chaine allant de la CA racine a la CA intermediaire jusqu'a votre certificat. Decouvrez pourquoi l'ordre de la chaine est important et comment corriger les erreurs 'certificat non approuve'.
SSL et certificats 2026-05-07
Certificats ECC vs RSA : lequel choisir ?
Comparaison des certificats ECC (ECDSA P-256) et RSA (2048/4096 bits). Les cles ECC sont plus petites et plus rapides. Decouvrez pourquoi GetHTTPS utilise ECC par defaut et quand RSA reste pertinent.
Obtenez un certificat SSL gratuit dans votre navigateur
Aucune installation, aucun compte. Votre clé privée ne quitte jamais votre appareil.
Obtenir un certificat