Un certificat SSL invalide veut dire que le navigateur refuse d’établir la session HTTPS pour ce nom. Le message à l’écran désigne la cause : date, nom, ou autorité de certification. On corrige le certificat que le serveur envoie vraiment, pas le fichier qu’on croit avoir installé. Tant que l’alerte est là, une partie des visiteurs s’arrête, et les contrôles externes du même URL échouent aussi.
Lire le message avant de régénérer un certificat
| Message courant (Chrome) | Cause la plus fréquente | Correction |
|---|---|---|
NET::ERR_CERT_DATE_INVALID | Certificat expiré, pas encore valide, ou horloge du poste fausse | Renouveler, ou corriger l’heure du poste si vous êtes le seul touché |
NET::ERR_CERT_COMMON_NAME_INVALID | Le nom demandé n’est pas dans le certificat | Émettre un certificat qui couvre ce nom (www, apex, sous-domaine) |
NET::ERR_CERT_AUTHORITY_INVALID | Chaîne incomplète, CA inconnue, ou interception locale | Envoyer les intermédiaires ; côté poste, quitter le portail ou l’antivirus qui substitue un certificat |
| Avertissement de contenu mixte | Page HTTPS qui charge un script ou une image en HTTP | Ce n’est pas un certificat invalide : passer ces URL en HTTPS |
Ouvrez le cadenas, ou l’erreur, et notez le nom présenté, les dates « pas avant / pas après », et l’émetteur. Comparez au nom de la barre d’adresse, caractère pour caractère. exemple.fr n’est pas couvert par un certificat limité à www.exemple.fr, sauf s’il contient les deux noms.
Vérifier ce que le serveur envoie
Depuis une machine dont l’heure est juste :
curl -vI https://exemple.fr/ 2>&1
Le dialogue TLS affiche l’émetteur, les dates et le nom. Un échec de vérification nommé dans la sortie confirme un problème serveur, pas un poste isolé. Pour voir la chaîne :
echo | openssl s_client -servername exemple.fr -connect exemple.fr:443 2>/dev/null | openssl x509 -noout -subject -dates -ext subjectAltName
subjectAltName doit lister chaque nom que les visiteurs utilisent. Les dates doivent encadrer aujourd’hui. S’il manque un intermédiaire, le client qui n’a pas ce certificat en magasin refuse la chaîne : renvoyez le full chain (certificat du site plus intermédiaires), pas la clé privée, pas seulement le certificat feuille.
Contrôlez chaque virtual host. Le port 443 par défaut sert parfois un autre certificat (premier site du serveur, ou certificat du CDN différent de celui de l’origine). Testez www, l’apex, et l’URL que le CDN expose. Un test d’URL en HTTPS reproduit l’échec vu de l’extérieur.
Corriger selon la cause
Date. Renouvelez (Let’s Encrypt via le client déjà en place, ou le certificat de l’hébergeur) et rechargez le serveur web. Vérifiez que la tâche planifiée tourne : un renouvellement qui échoue en silence laisse expirer le suivant. Le geste après expiration est détaillé dans Certificat SSL expiré : que faire.
Nom. Ajoutez les noms manquants et remplacez le certificat. Une redirection de www vers l’apex n’évite pas l’alerte : le TLS a lieu avant la redirection. Le certificat du premier nom demandé doit déjà être valide.
Chaîne. Rechargez la configuration avec le fichier qui contient les intermédiaires, dans l’ordre : feuille, puis intermédiaire. Ne mettez pas la racine en trop si votre fournisseur le déconseille, et ne mélangez pas la clé d’un autre certificat.
Interception. Si curl depuis un réseau neutre réussit et qu’un seul réseau d’entreprise échoue, le proxy local présente son propre certificat. Ce n’est pas un renouvellement chez vous qui le fera disparaître.
Contenu mixte. La page s’ouvre, puis le navigateur bloque un fichier http://. Ce n’est pas ERR_CERT_*. La correction est dans Corriger le contenu mixte.
Après le changement, refaites curl -vI et ouvrez la page en navigation privée. Le cadenas doit être neutre, les dates celles du nouveau certificat, le nom identique à la barre d’adresse. Un suivi dans le temps évite de redécouvrir l’échéance le jour où les visiteurs sont bloqués : Surveiller un certificat SSL.
Vérifiez le nom, les dates et la chaîne sur l’URL publique. Le fichier posé sur le disque ne prouve pas ce que le port 443 envoie.
