Message d’erreur
net::ERR_CERT_AUTHORITY_INVALID
La page d’avertissement affiche le code sous la forme « NET::ERR_CERT_AUTHORITY_INVALID » ; les outils d’automatisation (Playwright, Puppeteer, journaux Selenium) signalent « net::ERR_CERT_AUTHORITY_INVALID », c’est-à-dire ce qu’affiche notre reproduction en mode headless. Edge et les autres navigateurs Chromium utilisent le même code.
Chrome, Edge and other Chromium browsers — certificate error interstitial "Your connection is not private"
Ce que cela signifie
Chrome n’a pas pu construire de chaîne entre le certificat du site et une racine qu’il approuve : il bloque donc la page avec l’avertissement « Your connection is not private ». Le certificat est peut-être auto-signé, émis par une AC privée, présenté sans son certificat intermédiaire, ou remplacé par un élément qui intercepte la connexion. Chrome utilise le magasin de certificats du système d’exploitation sous Windows et macOS (ainsi que son propre Chrome Root Store pour les AC publiques), et la base de données NSS sous Linux.
Pourquoi cela se produit
Le serveur n’envoie pas son certificat intermédiaire
fréquenteChrome récupère souvent lui-même les certificats intermédiaires manquants (récupération AIA) et peut les mettre en cache, si bien qu’une même erreur de configuration ne fait échouer la connexion que sur certaines machines, dans certaines applications ou lors des premières visites.
Un certificat auto-signé ou émis par une AC privée
fréquenteDes routeurs, des NAS, des serveurs de développement et des sites intranet avec des certificats que le navigateur n’a jamais été configuré pour approuver.
La connexion est interceptée
fréquenteL’analyse HTTPS d’un antivirus, un proxy d’entreprise dont la racine est absente de cet appareil, les portails captifs des réseaux Wi-Fi publics, ou un véritable attaquant.
Un système d’exploitation ou un magasin de certificats racines obsolète
occasionnelleLes installations très anciennes d’Android ou de Windows n’ont pas les racines publiques plus récentes : seuls ces systèmes considèrent donc des certificats modernes comme non fiables.
Comment corriger l’erreur
- 1.
Propriétaires de sites : vérifier la chaîne servie
Si un seul certificat est envoyé et que son émetteur est une AC intermédiaire, la configuration du serveur est incomplète.
bash # Site owners: which certificates does the server send? (1 = intermediate missing) openssl s_client -connect www.example.com:443 -servername www.example.com -showcerts </dev/null 2>/dev/null \ | grep -E '^ *[0-9]+ s:|^ *i:' - 2.
Propriétaires de sites : servir la chaîne complète
Configurez le serveur web avec le fichier de chaîne complète, pour que tous les clients (pas seulement Chrome) puissent la vérifier.
text # nginx: serve leaf + intermediates ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem; - 3.
Sites internes : installer la racine privée sur les appareils gérés
Distribuez la racine de l’entreprise via la gestion des appareils ou le magasin de certificats du système d’exploitation ; sous Linux, ajoutez-la à la base de données NSS que lit Chrome.
bash # Internal sites: install the company root on the client (Chrome uses the OS store on # Windows and macOS; on Linux, the NSS database in ~/.pki/nssdb) certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n corp-root -i corp-root-ca.pem - 4.
Utilisateurs : regarder qui a émis le certificat avant toute autre action
La visionneuse de certificats indique l’émetteur. Passer outre l’avertissement (« Proceed to … (unsafe) ») devrait être réservé aux appareils qui vous appartiennent, sur des réseaux auxquels vous faites confiance ; sur un réseau inconnu, cela livre votre session à quiconque a présenté le certificat.
text Click "Not secure" in the address bar → "Certificate details" and read the issuer. A company or security-vendor name on a public site = TLS inspection on your network. An unknown issuer on public Wi-Fi = do not proceed.