Chrome: le site Web utilise HSTS. Erreurs de réseau… cette page fonctionnera probablement plus tard

162

Je développe contre localhost. Ce matin, juste après avoir utilisé Fiddler, j'ai commencé à avoir cette erreur sur Chrome (fonctionne correctement dans Firefox)

"Vous ne pouvez pas visiter localhost pour le moment car le site Web utilise HSTS. Les erreurs et les attaques de réseau sont généralement temporaires, donc cette page fonctionnera probablement plus tard." entrez la description de l'image ici

Désormais, localhost ne fonctionne dans Chrome que si Fiddler est en cours d'exécution. Je me suis déjà assuré que les redirections de proxy créées par Fiddler sont corrigées lorsque Fiddler s'arrête.

J'ai également essayé d'importer le certificat sur ma racine de confiance et de redémarrer le navigateur (ainsi que la machine).

développeur747
la source
2
Je rencontre ce problème lorsque l'administrateur informatique modifie ses politiques. Tout ce que j'ai à faire est d'exécuter la commande: gpupdate / force
Jacob Phan

Réponses:

192

Un moyen très rapide de contourner ce problème est, lorsque vous affichez l'écran "Votre connexion n'est pas privée":

type badidea

type thisisunsafe(merci à The Java Guy d' avoir trouvé la nouvelle phrase secrète)

Cela permettra l'exception de sécurité lorsque Chrome n'autorise pas la définition de l'exception via un clic, par exemple pour ce cas HSTS.

Ceci n'est évidemment recommandé que pour les connexions locales et les machines virtuelles de réseau local, bien sûr, mais cela présente l'avantage de fonctionner pour les VM utilisées pour le développement (par exemple sur les connexions locales transférées par port) et pas seulement pour les connexions locales directes.

Remarque: les développeurs Chrome ont modifié cette phrase secrète dans le passé et peuvent le faire à nouveau. Si badideacesse de fonctionner, veuillez laisser une note ici si vous apprenez la nouvelle phrase secrète. J'essaierai de faire de même.

Edit: depuis le 30 janvier 2018, cette phrase secrète semble ne plus fonctionner.

Si je peux en trouver un nouveau, je le posterai ici. En attendant, je vais prendre le temps de configurer un certificat auto-signé en utilisant la méthode décrite dans cet article de stackoverflow:

Comment créer un certificat auto-signé avec openssl?

Edit: à partir du 1er mars 2018 et de la version 64.0.3282.186 de Chrome, cette phrase de passe fonctionne à nouveau pour les blocs liés à HSTS sur les sites .dev.

Edit: à partir du 9 mars 2018 et de la version 65.0.3325.146 de Chrome, la badideaphrase de passe ne fonctionne plus.

Edit 2: le problème avec les certificats auto-signés semble être que, avec le resserrement des normes de sécurité à tous les niveaux ces jours-ci, ils provoquent leurs propres erreurs (nginx, par exemple, refuse de charger un certificat SSL / TLS qui comprend un cert auto-signé dans la chaîne d'autorité, par défaut).

La solution que j'utilise maintenant est d'échanger le domaine de premier niveau sur tous mes sites de développement .app et .dev avec .test ou .localhost. Chrome et Safari n'accepteront plus les connexions non sécurisées aux domaines de premier niveau standard (y compris .app).

La liste actuelle des domaines de premier niveau standard se trouve dans cet article de Wikipédia, y compris les domaines à usage spécial:

Wikipédia: Liste des domaines Internet de premier niveau: Domaines à usage spécial

Ces domaines de premier niveau semblent être exemptés des nouvelles restrictions https uniquement:

  • .local
  • .localhost
  • .tester
  • (tout domaine de premier niveau personnalisé / non standard)

Voir la réponse et le lien de codinghands à la question d'origine pour plus d'informations:

réponse de codinghands

Rick Gladwin
la source
19
jamais entendu parler de quoi que ce soit de tel, mais pour une raison quelconque, cela fonctionne! Merci!
Alexey
aide massive! Merci beaucoup!
RHSmith159
Je ne peux même pas croire que cela fonctionne, mais c'est le cas. Je ne sais pas si je devrais être heureux ou énervé que cela ne soit pas documenté; J'ai passé des HEURES au fil des ans à gérer cette merde sur les environnements de développement.
Scott Byers
7
Utilisez thisisunsafeinsread of badidea. Cela a été changé avec la nouvelle version
The Java Guy
cela fonctionne +1, mais chrome devrait vraiment ajouter une option pour continuer avec les avertissements, au lieu de simplement bloquer
5413668060
186

Lorsque vous avez visité https: // localhost précédemment, à un moment donné, non seulement il l'a visité sur un canal sécurisé (https plutôt que http), il l'a également indiqué à votre navigateur, en utilisant un en-tête HTTP spécial: Strict-Transport-Security (souvent abrégé en HSTS ), qu'il doit utiliser UNIQUEMENT https pour toutes les visites futures.

Il s'agit d'une fonction de sécurité que les serveurs Web peuvent utiliser pour empêcher les personnes d'être rétrogradées vers http (intentionnellement ou par une partie perverse).

Cependant, si vous désactivez ensuite votre serveur https et que vous souhaitez simplement parcourir http, vous ne pouvez pas (par conception - c'est le but de cette fonction de sécurité).

HSTS vous empêche également d'accepter et d'ignorer les erreurs de certificat passées.

Pour réinitialiser cela, afin que HSTS ne soit plus défini pour localhost, saisissez ce qui suit dans votre barre d'adresse Chrome:

chrome://net-internals/#hsts

Où vous pourrez supprimer ce paramètre pour "localhost".

Vous voudrez peut-être également savoir ce qui a été paramétré pour éviter ce problème à l'avenir!

Notez que pour les autres sites (par exemple www.google.com), ceux-ci sont "préchargés" dans le code Chrome et ne peuvent donc pas être supprimés. Lorsque vous les interrogez sur chrome: // net-internals / # hsts, vous les verrez répertoriés comme staticentrées HSTS.

Et notez enfin que Google a commencé à précharger le HSTS pour tout le domaine .dev: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

Barry Pollard
la source
Je reçois ceci pour gmail.com. Je suis allé à chrome: // net-internals / # hsts et j'ai interrogé gmail.com, j'ai trouvé: static_sts_domain: gmail.com static_upgrade_mode: STRICT J'ai essayé de supprimer le domaine, mais j'ai toujours le problème.
paiego
Cette réponse me paraît logique. Mon problème est cependant que j'ai changé un serveur de noms de site Web de wordpress (hébergé par wordpress) à mon serveur (auto-hébergé) et que je l'obtiens maintenant et vraisemblablement tous les visiteurs de Chrome. Une idée de comment contourner le problème pour les visiteurs sans qu'ils ne suppriment leur cache?
TomC
2
Fondamentalement, la seule réponse est d'utiliser HTTPS à l'avenir ou d'espérer que les utilisateurs ne l'ont pas mis en cache. HTTPS est la voie à suivre et sans LetsEncrypt. Vous devriez également vérifier si quelqu'un a préchargé votre site sur le code du navigateur, mais ne devinez pas si vous êtes en mesure de le réinitialiser vous-même. Je ne sais pas si Wordpress ajoute automatiquement HSTS, alors demandez-vous comment cela s'est passé.
Barry Pollard du
Merci @BazzaDP - je ne peux pas voir un moyen de contourner cela. Je devrais peut-être changer de serveur de noms, découvrir ce qui sur l'ancien site forçait HTTPS, puis réessayer de migrer. Vous ne pouvez pas simplement FTP des blogs hébergés par Wordpress vers le nouveau site, c'est pourquoi c'est un problème pour moi et le nouveau propriétaire du site n'a pas de certificat SSL (bien qu'il envisage sérieusement d'en obtenir un de toute façon)
TomC
2
Comme je l'ai mentionné dans ma réponse, les entrées préchargées (ou statiques STS) ne peuvent pas être supprimées car elles existent dans le code Chrome et non dans une liste gérée localement. Et selon ma dernière ligne dans ma réponse, Google a décidé de précharger tout le domaine de développement.
Barry Pollard
24

Cliquez n'importe où dans la fenêtre chrome et tapez thisisunsafe(au lieu de badideaprécédemment) dans chrome.

Cette phrase secrète peut changer à l'avenir. C'est la source

https://chromium.googlesource.com/chromium/src/+/master/components/security_interstitials/core/browser/resources/interstitial_large.js#19

Selon cette ligne, saisissez window.atob('dGhpc2lzdW5zYWZl')la console de votre navigateur et il vous donnera la phrase de passe réelle.

Cette fois, la phrase secrète est thisisunsafe.

Le gars de Java
la source
19

J'ai eu ce problème avec les sites fonctionnant sur XAMPP avec des noms d'hôtes privés. Pas si privé, il s'avère! Ils étaient tous domain.dev, que Google a maintenant enregistrés en tant que gTLD privé , et impose le HSTS au niveau du domaine. Changement de chaque hôte virtuel en .devel(eugh), redémarrage d'Apache et tout va bien maintenant.

codinghands
la source
Je peux confirmer ce problème avec Opera 50.0.2762.9 et que le passage de mon domaine de développement de .devà .develfonctionne autour de la restriction.
Courtney Miles
5
La RFC 2606 réserve certains domaines de premier niveau spécifiquement pour éviter les conflits avec les tests privés. Il semble que ce .testsoit peut-être le plus correct vers lequel passer pour les environnements de développement.
Courtney Miles
Cela m'a littéralement sauvé la vie après avoir été incapable de comprendre pourquoi Chrome agissait comme ça sur mon .devdomaine localhost ... Dieu, qui saurait ...
D. Petrov
Eh bien, en fait, .test n'est recommandé que pour tester le code DNS actuel ou nouveau.
Alexey
Ceci a résolu mon problème. J'utilise Laragon pour mon environnement de développement.
Craig
12

J'ai eu récemment la même question tout en essayant de domaines d'accès en utilisant CloudFlare Origin CA .

Le seul moyen que j'ai trouvé pour contourner / éviter l'exception de certificat HSTS sur Chrome (version Windows) était de suivre les brèves instructions dans https://support.opendns.com/entries/66657664 .

Solution de contournement:
ajoutez un raccourci Chrome à l'indicateur --ignore-certificate-errors, puis rouvrez-le et surfez sur votre site Web.

Rappel:
utilisez-le uniquement à des fins de développement.

entrez la description de l'image ici

Binyamin
la source
Essayez peut-être dans Google Canary build google.com/chrome/browser/canary.html
Binyamin
Supposons que vous n'ayez pas de site qui provoque une erreur de certificat. Ensuite, comment vérifieriez-vous si votre solution fonctionne?
N'aide
Et les versions Mac?
The Java Guy
4

Je vois qu'il y a tellement de réponses utiles ici, mais quand même, je tombe sur un article pratique et utile là-bas. https://www.thesslstore.com/blog/clear-hsts-settings-chrome-firefox/

J'ai rencontré le même problème et cet article m'a aidé à savoir ce que c'est exactement et comment gérer ce HTH :-)

Ramakrishna
la source
3

Une erreur similaire a été rencontrée. la réinitialisation de chrome: // net-internals / # hsts n'a pas fonctionné pour moi. Le problème était que l'horloge de ma vm était biaisée par jours. la réinitialisation du temps a fonctionné pour résoudre ce problème. https://support.google.com/chrome/answer/4454607?hl=en

psglinux
la source
2

Je rencontre la même erreur et le mode navigation privée a également le même problème. Je résous ce problème en effaçant l'historique de Chrome.

wangf
la source
2

Je souffre de ce problème depuis très longtemps. Je n'ai pas pu ouvrir de sites Web comme GitHub. J'ai presque essayé toutes les réponses sur le Web et personne n'a travaillé. J'ai essayé de réinstaller Chrome également. J'ai trouvé la solution pour cela de notre gars du réseau et cela a fonctionné. Il existe un correctif dans le registre qui résoudra cette erreur de manière permanente.

  1. Appuyez sur la touche Windows + R pour ouvrir la boîte de dialogue Exécuter
  2. tapez: regedit et appuyez sur Entrée pour ouvrir le registre
  3. Dans l'arborescence de gauche, cliquez sur le chemin suivant HKEY_LOCAL_MACHINE> SOFTWARE> POLICIES> Microsoft> SystemCertificate> Authroot
  4. Maintenant, double-cliquez sur DisableRootAutoUpdate à droite et réglez-le sur 0 (zéro) dans la boîte de dialogue qui apparaît
  5. Redémarrez votre PC pour appliquer les modifications du registre et vous n'obtiendrez plus cette erreur

La solution ci-dessus est pour Windows 8. Elle est presque identique dans les versions ultérieures mais je ne suis pas sûr pour les versions antérieures comme XP et Vista. Cela doit donc être vérifié.

Maulik Modi
la source
Savez-vous ce que signifie cette option?
MasterJoe2
@ testerjoe2: Non monsieur
Maulik Modi
1
Souffrait de ce google-analytics.com avec divers autres domaines Google. Cette réponse a résolu mon problème.
Shawn
L'article sur support.microsoft.com/en-us/help/2813430/… explique le comportement des touches qui ont été introduites dans un correctif pour Windows Vista. Si vous définissez cette valeur particulière sur 0, les certificats racine mis à jour sont automatiquement extraits de Windows Update et installés dans le magasin des autorités de certification racines de confiance. Dans un environnement d'entreprise, cela peut être désactivé par mesure de sécurité; cependant, cela signifie que quelqu'un doit gérer les autorités de certification racines de confiance au niveau de l'entreprise.
JamieVoir