Retour au blog Monitoring - 8 min

Certificat SSL invalide dans le navigateur : causes et corrections

Nom du certificat, date, chaîne incomplète ou horloge du poste : identifiez l’erreur du navigateur et corrigez le certificat servi en HTTPS.

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équenteCorrection
NET::ERR_CERT_DATE_INVALIDCertificat expiré, pas encore valide, ou horloge du poste fausseRenouveler, ou corriger l’heure du poste si vous êtes le seul touché
NET::ERR_CERT_COMMON_NAME_INVALIDLe nom demandé n’est pas dans le certificatÉmettre un certificat qui couvre ce nom (www, apex, sous-domaine)
NET::ERR_CERT_AUTHORITY_INVALIDChaîne incomplète, CA inconnue, ou interception localeEnvoyer les intermédiaires ; côté poste, quitter le portail ou l’antivirus qui substitue un certificat
Avertissement de contenu mixtePage HTTPS qui charge un script ou une image en HTTPCe 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.

Questions fréquentes

Pourquoi le cadenas est-il invalide seulement chez certains visiteurs ?

Souvent l’horloge du poste est fausse, ou un réseau intercepte le TLS (portail d’entreprise, antivirus). Si le même nom échoue partout, le certificat servi est expiré, incomplet ou ne couvre pas ce nom d’hôte.

Un certificat valide peut-il quand même afficher une alerte ?

Oui s’il ne couvre pas le nom demandé (www absent du certificat alors que le site est ouvert en www), si un intermédiaire manque dans la chaîne, ou si le visiteur arrive encore en HTTP sur une partie des ressources.

Renouveler le certificat suffit-il ?

Seulement si le nouveau fichier est bien celui que le serveur envoie, avec les intermédiaires, et qu’il couvre tous les noms utilisés. Un renouvellement posé au mauvais virtual host laisse l’ancien certificat en ligne.

Surveiller mes URL