DNS_PROBE_FINISHED_NXDOMAIN est un message de Chrome, pas un statut HTTP. La recherche DNS s’est terminée par NXDOMAIN : le serveur de noms qui fait autorité indique que ce nom n’existe pas. Code de réponse DNS 3, « Name Error ». Le navigateur s’arrête là. Il n’ouvre pas de connexion, il ne peut pas afficher un 404 ou un 500, et le certificat n’entre pas en jeu.
Ce n’est pas un délai DNS, ni un SERVFAIL. SERVFAIL veut dire que le résolveur n’a pas pu obtenir une réponse fiable. NXDOMAIN veut dire qu’il a obtenu une réponse nette : ce nom n’est pas publié.
Pourquoi le nom est déclaré inexistant
- Le nom de domaine a expiré. Après la période où le registre le retire du DNS, les résolveurs répondent NXDOMAIN. Le site peut avoir fonctionné la veille.
- La zone a été supprimée chez le hébergeur DNS, ou les serveurs de noms du domaine ne sont plus ceux qui portent la zone.
- L’enregistrement demandé n’a jamais existé.
wwwest publié, le sommet du domaine ne l’est pas, ou l’inverse. L’erreur ne touche alors qu’une des deux adresses. - Un CNAME pointe vers un nom qui n’existe pas. La cible a été supprimée, la source répond NXDOMAIN.
- Une faute de frappe dans un lien, une campagne ou un favori. Le nom demandé n’est pas le vôtre. Corriger le serveur ne fera pas exister ce nom.
- Un résolveur menteur ou un fichier
hostsincomplet, dans un cas plus local : le public répond NXDOMAIN alors qu’un réseau interne résout encore l’ancien nom, ou le contraire.
Confirmer avec un résolveur public
- Interrogez un résolveur public, par exemple
dig exemple.fr @8.8.8.8et la même commande pourwww. Lisez le statut.NXDOMAINconfirme le diagnostic.NOERRORavec une adresse veut dire que le DNS public va bien et que le problème est local au poste. - Interrogez les serveurs de noms du domaine (
dig NS, puis une requête vers l’un d’eux). S’ils répondent NXDOMAIN alors qu’un cache répond encore l’ancienne adresse, la zone a changé et les caches n’ont pas tous expiré. - Vérifiez la date d’expiration et le statut au registre (clientHold, pendingDelete). Un domaine expiré ne se répare pas dans Nginx.
- Comparez le sommet et
www, et la cible d’un éventuel CNAME. - Depuis un téléphone hors de votre réseau, ouvrez le même nom. S’il échoue aussi, ce n’est pas le cache de votre bureau.
Un test d’URL qui ne peut pas résoudre le nom échoue avant le HTTP. Quand le DNS est rétabli, le même test doit obtenir un code de page. D’ici là, il ne mesure pas la boutique.
Rétablir la zone ou le nom
| Constat | Action |
|---|---|
| Domaine expiré | Le renouveler au registrar. Le DNS ne reviendra qu’après la remise en publication |
| Zone supprimée | Recréer la zone chez le DNS autoritaire, avec les enregistrements A ou AAAA |
| Mauvais serveurs de noms | Remettre les NS qui portent réellement la zone. Ne les changez pas une seconde fois pendant la propagation |
www ou le sommet manquant | Créer l’enregistrement qui manque, ou rediriger au niveau HTTP une fois les deux noms résolus |
| CNAME vers un nom absent | Corriger la cible, ou remplacer le CNAME par une adresse |
| Faute dans le lien | Corriger le lien. Le domaine sain n’a rien à changer |
Après le rétablissement, les résolveurs qui ont mémorisé NXDOMAIN le gardent jusqu’au TTL de cette réponse négative. Le site peut donc revenir pour certains réseaux avant d’autres. Ce n’est pas une raison pour modifier encore les NS.
Ce qui ne change rien
Vider le cache du navigateur sans que la zone existe à nouveau laisse l’erreur en place. Renouveler le certificat, redémarrer PHP ou purger un CDN ne crée pas un nom DNS. Changer les serveurs de noms « pour essayer » pendant que le registrar montre un domaine expiré ajoute une seconde panne. Confondre NXDOMAIN et une coupure d’hébergement fait chercher un 500 qui n’a pas lieu : la requête n’atteint pas l’hébergement.
Quand le nom résout de nouveau, contrôlez le code HTTP et le contenu avec la méthode pour tester si un site répond vraiment. Les deux étapes sont séparées : d’abord le nom, ensuite la page. Les contrôles de surveillance du domaine doivent inclure la résolution, pas seulement le code 200 d’une IP déjà connue.
