SECURITY GUIDE

Certificate Chain : Validez la Chaine Complete des Certificats SSL

Comment fonctionne la chaine de confiance des certificats, comment diagnostiquer les certificats intermediaires manquants et resoudre les erreurs.

La chaine de confiance : du leaf a la root

La securite des certificats SSL repose sur une chaine de confiance hierarchique. Votre certificat (leaf certificate) n'est pas directement approuve par le navigateur : il est signe par une CA intermediaire, qui est a son tour signee par une root CA. Le navigateur possede un trust store avec les root CA approuvees (environ 150 root CA dans les navigateurs modernes). Pour approuver votre certificat, le navigateur doit pouvoir construire la chaine complete du leaf jusqu'a une root CA dans son trust store. Si un maillon manque, la chaine se brise et le navigateur affiche une erreur.

L'outil Certificate Chain visualise la chaine entiere retournee par le serveur, verifiant la signature de chaque certificat, les dates de validite de chacun, et la completude de la chaine. Il est plus detaille que le SSL Check : tandis que celui-ci fournit un grade global, le Certificate Chain se concentre specifiquement sur la structure de la chaine, identifiant les certificats manquants, les certificats dans le mauvais ordre, et les certificats expires dans la chaine.

Problemes courants dans la chaine

Chaine de certificats correcte vs incomplete
# Catena CORRETTA (3 certificati)
[1] CN=esempio.com          (leaf - il tuo certificato)
  ↓ firmato da
[2] CN=Let's Encrypt R3      (CA intermedia)
  ↓ firmato da
[3] CN=ISRG Root X1          (root CA - nel trust store)

# Catena INCOMPLETA (manca l'intermedio)
[1] CN=esempio.com          (leaf)
  ↓ firmato da
[?] MANCANTE!                ← errore per alcuni browser
  ↓
[3] CN=ISRG Root X1          (root - non raggiungibile)

Le probleme le plus frequent est le certificat intermediaire manquant. Le serveur doit envoyer le leaf et tous les intermediaires (mais pas la root). Si un intermediaire manque, certains navigateurs et clients (notamment mobiles, cURL, applications Java) ne peuvent pas valider la chaine et affichent une erreur. Chrome sur bureau fonctionne souvent quand meme car il telecharge automatiquement les intermediaires manquants (AIA fetching), masquant le probleme. C'est pourquoi il est essentiel de tester avec un outil dedie comme notre Certificate Chain.

Configurer correctement la chaine

Pour configurer correctement la chaine, concatenez le certificat du serveur avec les certificats intermediaires dans un seul fichier (bundle ou fullchain). L'ordre est : leaf en premier, puis les intermediaires du plus proche du leaf au plus proche de la root. N'incluez pas le certificat root. Sur Nginx : ssl_certificate pointe vers le fullchain. Sur Apache : SSLCertificateFile pour le leaf, SSLCertificateChainFile pour les intermediaires. Let's Encrypt fournit directement le fichier fullchain.pem contenant leaf + intermediaires.

Apres la configuration, verifiez avec Certificate Chain et avec SSL Check pour le grade. Si vous emettez des certificats pour plusieurs sous-domaines, verifiez la chaine sur chacun — la configuration pourrait differer. Verifiez aussi que votre domaine a les enregistrements CAA Record Lookup configures pour limiter quelles CA peuvent emettre des certificats, ajoutant un niveau supplementaire de protection a votre PKI.

Un cas particulier est le cross-signing : Let's Encrypt a initialement utilise un certificat intermediaire cross-signe par la root DST Root CA X3 (plus ancienne et repandue) pour assurer la compatibilite avec les appareils Android anterieurs a 7.1. Avec la transition vers leur propre root ISRG Root X1, certains appareils anciens peuvent avoir des problemes. Si votre audience inclut des appareils tres anciens, verifiez la compatibilite de la chaine avec ces clients specifiques.

Essayer Certificate Chain gratuitement
Visualise et valide la chaîne complète de certificats SSL
Utiliser Certificate Chain >

Explore the Network