Sleezr
Télécharger
NET::ERR_CERT_COMMON_NAME_INVALID et fichier hosts : solutions

NET::ERR_CERT_COMMON_NAME_INVALID et fichier hosts : solutions

É
Équipe Sleezr
··4 min de lecture

Corrigez NET::ERR_CERT_COMMON_NAME_INVALID quand vous faites pointer un domaine avec le fichier hosts. mkcert, SAN, SSL local et HSTS expliqués.

L'erreur NET::ERR_CERT_COMMON_NAME_INVALID survient lorsque le certificat SSL/TLS présenté par le serveur web ne correspond pas au nom de domaine saisi dans le navigateur. Quand vous utilisez le fichier hosts pour router un domaine de test ou de préproduction vers votre serveur local, le certificat servi par défaut est rejeté par les contrôles de sécurité du navigateur.

Comment corriger NET::ERR_CERT_COMMON_NAME_INVALID avec le fichier hosts

Pour corriger NET::ERR_CERT_COMMON_NAME_INVALID lors de l'utilisation du fichier hosts, installez une autorité locale avec `mkcert -install`, générez un certificat TLS incluant vos noms d'hôtes et sous-domaines (via les extensions SAN), puis configurez votre serveur web local (Nginx, Caddy ou Apache) pour servir ce certificat sur le port 443.

Pourquoi cette erreur survient lors des tests avec le fichier hosts

Lorsque vous ajoutez une ligne dans votre fichier hosts :

TEXT
127.0.0.1  monsite-client.test

Le flux réseau se déroule ainsi :

1
Le navigateur demande l'adresse IP de monsite-client.test et obtient 127.0.0.1 grâce au fichier hosts.
2
Le navigateur initialise une connexion sécurisée en HTTPS sur le port 443 de 127.0.0.1.
3
Le serveur local renvoie son certificat SSL actuel (souvent configuré pour localhost ou un autre projet).
4
Le navigateur compare le nom demandé (monsite-client.test) avec les noms autorisés dans le certificat (champ Subject Alternative Name ou SAN).
5
En l'absence de correspondance exacte, Chrome et Safari bloquent l'accès avec NET::ERR_CERT_COMMON_NAME_INVALID.

Consultez également notre guide sur la configuration HTTPS en local et la résolution de l'autorité de certification invalide.

Tableau comparatif des solutions

ApprocheNiveau de sécuritéCompatibilité navigateursCas d'usage recommandé
Certificat avec mkcertTrès élevé (CA locale de confiance)Parfaite (Chrome, Firefox, Safari)Développement local sur domaines .test
Proxy Caddy automatiqueTrès élevéAutomatiqueProjets avec microservices et reverse proxy
Certificat auto-signé sans SANFaibleRejeté par Chrome moderneDéconseillé
Let's Encrypt DNS challengeÉlevéUniverselleServeurs de préproduction accessibles en staging

Solution recommandée : Générer un certificat SAN avec mkcert

Depuis la dépréciation du champ Common Name historique au profit du standard Subject Alternative Name (SAN, RFC 2818), tout certificat moderne doit lister explicitement les domaines cibles.

1. Installer mkcert

Sur macOS (Homebrew) :

BASH
brew install mkcert
brew install nss # Recommandé pour le support de Firefox

Sur Linux (Ubuntu/Debian) :

BASH
sudo apt install libnss3-tools
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64"
chmod +x mkcert-v*-linux-amd64
sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert

Sur Windows (PowerShell via Chocolatey) :

POWERSHELL
choco install mkcert

2. Initialiser l'autorité de certification locale

BASH
mkcert -install

Cette commande ajoute l'autorité racine dans le magasin de certificats de votre système d'exploitation.

3. Créer le certificat couvrant vos domaines déclarés dans le fichier hosts

Spécifiez tous vos domaines et wildcards dans la même commande :

BASH
mkcert monprojet.test "*.monprojet.test" api.monprojet.test localhost 127.0.0.1

La commande génère deux fichiers clés dans votre répertoire courant :

  • monprojet.test+4.pem (le certificat public)
  • monprojet.test+4-key.pem (la clé privée)

4. Configurer votre serveur web local (exemple Nginx)

NGINX
server {
    listen 443 ssl http2;
    server_name monprojet.test api.monprojet.test;

    ssl_certificate /chemin/vers/monprojet.test+4.pem;
    ssl_certificate_key /chemin/vers/monprojet.test+4-key.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto https;
    }
}

Rechargez Nginx (sudo nginx -s reload) et rafraîchissez votre page. Le cadenas de sécurité valide la connexion sans erreur de nom commun.

Le piège des extensions TLD : pourquoi éviter .dev et .app

Certains développeurs choisissent des extensions comme monprojet.dev ou monprojet.app dans leur fichier hosts.

  • Les extensions .dev et .app sont des domaines de premier niveau réels gérés par Google Registry.
  • Ils sont inscrits dans la liste HSTS preload intégrée aux navigateurs.
  • Tout accès en HTTP est immédiatement converti en HTTPS strict, et le navigateur interdit formellement de cliquer sur "Continuer vers le site" si le certificat n'est pas irréprochable.

Pour vos configurations de test dans /etc/hosts, privilégiez toujours les TLD réservés définis par la RFC 2606 :

  • .test (ex: client.test)
  • .example
  • .localhost
À lire aussiGuide complet : Activer HTTPS en local sur Mac
À lire aussiCorriger l'erreur mkcert NET::ERR_CERT_AUTHORITY_INVALID
Partager cet article

Questions fréquentes

Cette erreur indique que le certificat SSL/TLS renvoyé par le serveur web ne contient pas le nom de domaine exact saisi dans la barre d’adresse de votre navigateur.

Le fichier hosts gère uniquement la couche réseau (résolution IP). Le certificat SSL est délivré par le serveur web lors du handshake TLS après l’établissement de la connexion IP.

Utilisez l’outil mkcert pour créer une autorité de certification locale reconnue par votre système et générer un certificat couvrant vos domaines de test (.test ou .local).

Sur les TLD réservés comme .dev ou .app, le mécanisme HSTS est imposé par défaut par Google, empêchant tout contournement manuel d’un certificat non conforme.

Articles similaires

6 min de lecture
mkcertHTTPSSSL

Corriger mkcert NET::ERR_CERT_AUTHORITY_INVALID

Corrigez NET::ERR_CERT_AUTHORITY_INVALID avec mkcert sur Mac : CA locale, certificat, domaine exact, Chrome, Firefox et hosts.

É

Équipe Sleezr

Outils développeurs

6 min de lecture
HTTPSSSLcertificat

mkcert SSL local sur Mac : HTTPS en 2 minutes (2026)

Configurez mkcert ssl local sur Mac : installation, CA de confiance, certificats localhost et .test. Vite, Next.js, Docker + correction NET::ERR_CERT_AUTHORITY_INVALID.

É

Équipe Sleezr

4 min de lecture
fichier hostsERR_CONNECTION_REFUSEDDocker

ERR_CONNECTION_REFUSED sur un domaine du fichier hosts : solutions

Votre domaine personnalisé dans le fichier hosts renvoie ERR_CONNECTION_REFUSED ? Vérifiez le port, le binding 0.0.0.0 vs 127.0.0.1, Docker et le reverse proxy.

É

Équipe Sleezr

Outils développeurs

4 min de lecture
Node.jsfichier hostspermissions

EACCES: permission denied sur /etc/hosts : comment corriger

Corrigez l’erreur EACCES permission denied sur /etc/hosts en Node.js, bash et sous Windows. Droits root, sudoers, scripts CLI et solutions sécurisées.

É

Équipe Sleezr

Outils développeurs

4 min de lecture
WordPressERR_TOO_MANY_REDIRECTSfichier hosts

ERR_TOO_MANY_REDIRECTS et fichier hosts : stopper la boucle

Boucle de redirection infinie (ERR_TOO_MANY_REDIRECTS) avec le fichier hosts ? Solutions pour WordPress, reverse proxy Nginx, HTTPS et cache 301.

É

Équipe Sleezr

Outils développeurs

4 min de lecture
Node.jsDockerDNS

getaddrinfo ENOTFOUND dans Docker et Node.js : solutions

getaddrinfo ENOTFOUND ou EAI_AGAIN malgré une entrée dans /etc/hosts ? Résolvez l’isolation DNS Docker, le binding Node.js et les erreurs libc.

É

Équipe Sleezr

Outils développeurs