Diagnostiquez et corrigez les certificats intermédiaires manquants.
Une chaîne de certificat incomplète est l'une des erreurs SSL les plus sournoises. Votre site peut fonctionner parfaitement dans certains navigateurs (qui téléchargent les certificats manquants) et afficher des erreurs dans d'autres (qui ne le font pas). Les appareils mobiles et les clients API sont particulièrement sensibles à ce problème.
La chaîne de certificats relie votre certificat à une autorité de certification racine (CA root) de confiance. Si un certificat intermédiaire manque, le navigateur ne peut pas établir cette confiance et affiche une erreur, même si votre certificat est parfaitement valide.
Ce guide explique comment fonctionne la chaîne de certificats, comment diagnostiquer une chaîne incomplète, et comment corriger le problème définitivement sur votre serveur.
Comment identifier ce problème :
Pourquoi les intermédiaires sont manquants :
Outils pour analyser votre chaîne de certificats :
Comment reconstruire et installer la chaîne complète :
#!/bin/bash
# Voir la chaîne actuelle envoyée par le serveur
openssl s_client -connect example.com:443 -showcerts </dev/null 2>/dev/null
# Télécharger et construire la chaîne complète
# Pour Let's Encrypt, utilisez fullchain.pem au lieu de cert.pem
# Nginx:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# Apache:
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
# Note: SSLCertificateChainFile est obsolète avec Apache 2.4.8+
# Construire manuellement une chaîne (si nécessaire)
cat server.crt intermediate.crt > fullchain.crt
# Vérifier l'ordre de la chaîne
openssl crl2pkcs7 -nocrl -certfile fullchain.pem | openssl pkcs7 -print_certs -noout
# Valider la chaîne localement
openssl verify -CAfile ca-bundle.crt fullchain.pem
La clé est d'utiliser fullchain.pem (Let's Encrypt) ou de concaténer votre certificat avec les intermédiaires dans le bon ordre.
Évitez les problèmes de chaîne :
Chrome télécharge automatiquement les certificats manquants via AIA (Authority Information Access). Curl et la plupart des outils ne le font pas.
Votre autorité de certification les fournit lors de l'émission. Pour Let's Encrypt, ils sont dans fullchain.pem. Sinon, téléchargez-les du site de la CA.
De haut en bas : votre certificat, puis intermédiaire 1, puis intermédiaire 2, etc. Le root n'est pas nécessaire.
Non, les navigateurs ont déjà les root CA de confiance. Inclure le root ajoute du poids inutile au handshake.
Vérifiez sa date d'expiration avec openssl. Les CA publient aussi les mises à jour sur leurs sites.
MoniTao vérifie la connexion SSL complète. Si la chaîne est incomplète et cause une erreur, vous serez alerté.
Une chaîne de certificat complète est essentielle pour une compatibilité maximale. Utilisez les outils de diagnostic et assurez-vous que tous les certificats intermédiaires sont en place.
Surveillez vos certificats avec MoniTao pour être alerté de tout problème SSL. Une surveillance régulière vous évite les mauvaises surprises.
Commencez gratuitement, sans carte bancaire.