Google Chrome redirige localhost vers https

362

Lorsque je débogue un projet Visual Studio à l'aide de Chrome, le navigateur essaie de rediriger vers l'équivalent https de mon adresse Web. Je n'ai pas SSL activé dans le projet Web et l'URL de démarrage est l'URL http. Lorsque je débogue avec FireFox ou IE, je n'ai pas ce problème.

J'ai réinstallé Chrome, ce qui a résolu le problème pendant une journée. Sans télécharger aucun add-on, le problème s'est reproduit le lendemain.

Qu'est-ce qui fait que Chrome redirige l'hôte local vers https?

Network Inspect Shows: URL de demande: data: text / html, chromewebdata En-têtes de demande Les en-têtes provisoires sont affichés User-Agent: Mozilla / 5.0 (Windows NT 6.3; WOW64) AppleWebKit / 537.36 (KHTML, comme Gecko) Chrome / 36.0.1985.143 Safari / 537,36

Aucun aperçu et aucune donnée de réponse dans ces onglets.

Brett Mathe
la source
que montre Network Inspector?
c69
4
L'inspection du réseau ne montre pas grand-chose. Je ne vois même pas l'URL demandée. URL de demande: data: text / html, chromewebdata En-têtes de demande Les en-têtes provisoires sont affichés Cache-Control: no-cache Pragma: no-cache User-Agent: Mozilla / 5.0 (Windows NT 6.3; WOW64) AppleWebKit / 537.36 (KHTML, comme Gecko ) Chrome / 36.0.1985.143 Safari / 537.36
Brett Mathe
CHROME 63: continuez à faire défiler les réponses
nord-américain
En réinstallant simplement mon chrome résout tous les problèmes .. maintenant mon .dev et ne plus rediriger vers https. J'aurais aimé avoir essayé ça plus tôt .. perdu tellement de temps ..
Taj Khan
10
Quiconque a récemment rencontré ce problème, si vous essayez d'utiliser .devvotre doman local, c'est un tout nouveau problème, donc je ne pense pas que l'une de ces réponses fonctionnera plus. Depuis Chrome 63 ... "Chrome pour forcer les domaines .dev à HTTPS via HSTS préchargé". Donc, plus de certificats SSL auto-signés. Apparemment, .dev est un vrai domaine. Qui savait.
Trevor

Réponses:

593

Je crois que cela est causé par HSTS - voir http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security

Si vous avez (développé) d'autres sites locaux qui envoient un en-tête HSTS ...

par exemple. Strict-Transport-Security: max-age = 31536000; includeSubDomains; précharger

... puis en fonction de la valeur de max-age, les futures demandes adressées à localhost devront être traitées via HTTPS.

Pour contourner cela, j'ai fait ce qui suit.

  • Dans la barre d'adresse de Chrome, tapez "chrome: // net-internals / # hsts"
  • Tout en bas d'une page se trouve la zone de texte du domaine QUERY - vérifiez que localhost est connu du navigateur. S'il indique "Introuvable", ce n'est pas la réponse que vous recherchez.
  • Si c'est le cas, SUPPRIMEZ le domaine localhost en utilisant la zone de texte ci-dessus
  • Votre site devrait maintenant fonctionner avec un ancien HTTP simple

Ce n'est pas une solution permanente, mais au moins la fera fonctionner entre les projets. Si quelqu'un sait comment exclure définitivement localhost de la liste HSTS, veuillez me le faire savoir :)

MISE À JOUR - novembre 2017

Chrome a récemment déplacé ce paramètre pour qu'il soit placé sous Supprimer les politiques de sécurité du domaine

entrez la description de l'image ici

MISE À JOUR - décembre 2017 Si vous utilisez un domaine .dev, consultez les autres réponses ci-dessous, car Chrome (et d'autres) forcent HTTPS via HSTS préchargé.

BigJump
la source
6
Si frustrant. Mais si heureux d'avoir trouvé la cause.
Zapnologica
21
J'ai essayé d'interroger "localhost" mais il dit Introuvable
Chin
2
Je sais que c'est un ancien message, mais avez-vous une idée de la façon de résoudre si, en interrogeant localhost conformément à la réponse acceptée, il retourne «introuvable»? J'ai tout essayé dans tous les commentaires et réponses ici.
DarkW1nter
28
Il s'agit d'ordures totales par Chrome. Comment s'attendent-ils à ce que nous développions localement alors qu'ils commencent juste à vous forcer arbitrairement à HTTPS sur votre hôte local flippant? J'ai tout bien utilisé pendant des mois, je me connecte un matin et je m'occupe de cette merde. Aucun de ces "correctifs" ne fonctionne pour moi.
Alison
50
Si votre domaine localhost est .dev alors je pense que cela ne fonctionne pas @Alison car à partir de la récente version de v.63 ... "Chrome pour forcer les domaines .dev à HTTPS via HSTS préchargé". En tant que tel, .dev ne fonctionnera plus du tout sauf si vous disposez d'un certificat SSL signé. Plus de certificats auto-signés autorisés. Plus de détails .
Trevor
308

J'ai rencontré le même problème dans Chrome et j'ai essayé en vain d'utiliser la solution de BigJump .

J'ai résolu mon problème en forçant une actualisation matérielle, comme indiqué dans ce blog (à l'origine de cette réponse SuperUser ).

Assurez-vous que votre barre d'adresse utilise le schéma http, puis suivez ces étapes, éventuellement plusieurs fois:

  1. Ouvrez le panneau des outils de développement (CTRL + MAJ + I)
  2. Cliquez et maintenez l'icône de rechargement / Cliquez avec le bouton droit sur l'icône de rechargement.
  3. Un menu s'ouvrira.
  4. Choisissez la 3ème option dans ce menu ("Cache vide et rechargement dur")
Adiyat Mubarak
la source
3
Vous pouvez également cliquer avec le bouton droit sur l'icône d'actualisation / rechargement pour accéder au menu Hard Reload
avjaarsveld
3
Je n'arrive pas à faire fonctionner cette solution. Le problème est qu'il effectue un rechargement dur sur localhost: 3000 (dans mon cas). Tentative de changer le protocole avant le rechargement mais cela ne fonctionne pas.
john_omalley
1
Je vous remercie!!! Cela restaure localhost: port d'origine si vous avez gâché votre startup.cs avec ceci ... var options = new RewriteOptions (). AddRedirectToHttpsPermanent (); app.UseRewriter (options); }
hubert17
A fonctionné pour moi en appuyant sur "CTRL + MAJ + R" pour un rechargement dur.
LP. Gonçalves
Sur le chrome, c'est F12 et non CTRL + SHIFT + I
Champ
190

NOUVEAUX DÉVELOPPEMENTS! (si vous avez Chrome 63+)

Si votre domaine localhost est .devalors je ne pense pas que les réponses précédemment acceptées et fonctionnelles ne s'appliquent plus. En effet, à partir du Chrome 63, Chrome forcera les domaines .dev à HTTPS via HSTS préchargé.

Cela signifie que, .devfondamentalement, ne fonctionnera plus du tout à moins d'avoir un certificat SSL signé approprié - plus de certificats auto-signés autorisés! En savoir plus sur cet article de blog.

Donc, pour résoudre ce problème maintenant et éviter que cela ne se reproduise à l'avenir, .testc'est un domaine recommandé car il est réservé par l'IETF à des fins de test / dev. Vous devriez également pouvoir utiliser .localhostpour le développement local.

Trevor
la source
2
J'ai changé tous les domaines .dev en .app, toujours le même problème. Avez-vous des indications sur le problème?
Jeff
5
@Jeff essayez d'utiliser.test
Vitalii Zurian
18
C'est EXTRÊMEMENT ennuyeux. Il doit sûrement y avoir un moyen de ne pas nous forcer à changer notre domaine de développement, non?
Emanuele Ciriachi
5
remplacer .devpar a aussi .testfonctionné pour moi dans Chrome 63
Lekhnath
12
Ces valeurs par défaut contre-intuitives sont terribles. Pourquoi devrait-on perdre du temps à déboguer la configuration de leur environnement de développement, ou simplement à deviner ce qui ne va pas, juste pour découvrir que tout va bien de leur côté et c'est Google Chrome qui redirige .dev vers HTTPS par défaut. Où est la logique. Pourquoi .dev et pourquoi pas d'autres TLD? Absolument pas intuitif.
Meglio
50

Ferroutage au large d' Adiyat Moubarak

Impossible d'actualiser en profondeur car il était juste rafraîchissant sur https. Suit certaines des mêmes étapes.

1. Open chrome developer tools (ctrl + shift + i)
2. Network Tab at the top
3. Click Disable cache checkbox at the top (right under network tab for me).
4. Refresh page (while the developer tools is still open)
Steven Johnston
la source
Je suis ici la deuxième fois pour la solution. Merci beaucoup.
Čamo
1
J'utilise un domaine .local et cela a fonctionné lorsque la solution HSTS ci-dessus ne l'a pas fait.
DiegoSalazar
C'est la seule chose qui a fonctionné pour moi après avoir essayé les solutions de BigJump et Adiyat Mubarak.
Alek Arsovski
Désactiver le cache était également nécessaire pour moi. Ce problème a commencé à se produire après l'arrêt de Fiddler.
CounterFlame
47

Je suis confronté au même problème, mais uniquement dans Chrome Canary et à la recherche d'une solution, j'ai trouvé ce message .

l'une des prochaines versions de Chrome va forcer tous les domaines se terminant par .dev (et .foo) à être redirigés vers HTTP via un en-tête HTTP Strict Transport Security (HSTS) préchargé.

{ "name": "dev", "include_subdomains": true, "mode": "force-https" },
{ "name": "foo", "include_subdomains": true, "mode": "force-https" },

Alors, changez vos domaines.

rafawhs
la source
2
c'est le problème que je suis venu résoudre ici. mec maintenant je dois trouver un faux tld différent pour mes sites de développement locaux ...
matt lohkamp
2
Du wiki , .localça sonne un peu cassant, même si je suppose que c'est plus sûr que les autres TLD. Je retire également l'utilisation de .localhostcoz, il semble que Chrome fasse une redirection native qui semble empêcher mon rproxy de fonctionner. .testsemble le plus sûr, bien que maladroit en raison des conflits d'espace de noms avec toutes ces chaînes utilisées dans TDD / .test()méthodes, etc.
dwelle
8
J'ai perdu une journée là-dessus. Merci beaucoup
Tonio
17
bon sang, juste mis à jour vers Chrome 63 et maintenant cela m'affecte pour .dev. WTF. Je me fiche que ce soit un TLD valide ou non, si je n'ai pas besoin ou que je veux ou que mon site utilise SSL, alors ne me forcez pas.
dbinott
6
Wow ça me fait chier. Pour certains environnements de développement, ce n'est pas aussi simple que de simplement changer le tld. Je regarde les heures de travail maintenant pour changer cela pour ce sur quoi je travaille. Ce n'est pas vraiment leur affaire ce que je veux utiliser pour développer.
Brett Thomas
18

Chrome 63 (sorti depuis décembre 2017), forcera tous les domaines se terminant par .dev (et .foo) à être redirigés vers HTTPS via un en-tête HTTP Strict Transport Security (HSTS) préchargé. Vous pouvez trouver plus d'informations à ce sujet ici.

Tai Ho
la source
2
^^ Idem. Cela a également affecté nos .appdomaines la semaine dernière. Nous passons temporairement à .testbien que je ne pense pas que ce soit une solution à long terme.
russellmania
13

depuis https://galaxyinternet.us/google-chrome-redirects-localhost-to-https-fix/

Aucun des correctifs d'option n'a fonctionné pour moi, pour le corriger https://localhost:3000, cela a fonctionné.

cliquez et maintenez le Reloadbouton et sélectionnez Empty Cache and Hard Reload, cela ne semble être qu'une option surlocalhost

user2167582
la source
cela ne fonctionne pas de mon côté. N 'y a-t-il pas une autre solution?
Raju Paladiya,
Dernière mise à jour de Chrome, cette solution ne fonctionnera plus.
user2167582
1
Cela devrait fonctionner sur tous les domaines si la barre d'outils du développeur est ouverte
Hussam
7

J'ai également eu du mal avec ce problème. Semble que HSTS est destiné uniquement aux noms de domaine . Donc, si vous développez sur une machine locale, il est beaucoup plus facile d'utiliser l'adresse IP. Je suis donc passé de localhost à 127.0.0.1

siim
la source
C'est bien, mais est-il possible de s'assurer que chaque fois que vous tapez localhost, il remplace les mots localhost par 127.0.0.1?
Simon
Merci beaucoup
hedha
6

Je n'ai jamais trouvé la racine du problème, mais j'ai pu résoudre ce problème. J'ai supprimé le dossier de cache de l'application Google Chrome, ce qui a résolu le problème.

C: \ Users [utilisateurs] \ AppData \ Local \ Google \ Chrome

Brett Mathe
la source
1
Avez-vous perdu tout l'historique ou les mots de passe du navigateur?
Zapnologica
7
Je crois que le problème est que Chrome stocke lorsque vous visitez un domaine en utilisant HTTPS, puis si vous visitez à nouveau le même domaine, il passe automatiquement en HTTPS. C'est une douleur dans le cul en tant que développeur car une fois que vous accédez à n'importe quel site localhost en utilisant HTTPS, soudainement tous les sites locahost sont redirigés vers HTTPS.
Dale K
1
@DaleBurrell Vous n'avez pas raison. Cela est dû à HSTS: en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
langpavel
6

Cela peut être dû à une redirection https mise en cache et peut être résolu en effaçant le cache manuellement, comme dans la réponse d'Adiyat Moubarak.

Mais si vous visitez localhost, vous êtes probablement un développeur, auquel cas vous trouverez une extension chrome d'effacement du cache telle que "tueur de cache classique" (voir par exemple https://chrome.google.com/webstore/search/classic%20cache % 20killer? Hl = en ) utile dans diverses situations et probablement déjà installé.

La solution rapide est donc: installez un cache killer (si vous n'en avez pas déjà un), allumez-le et rechargez la page. Terminé!

CalderBot
la source
Cela a résolu le problème
makdu
6

Une solution paresseuse et rapide pour les paresseux comme moi (travaillant dans Chrome 67).

Il suffit de lancer une autre fenêtre Chrome en mode furtif , avec l'option "Fenêtre de navigation privée" (CTRL + MAJ + N). Pas besoin de supprimer le cache, pas besoin de plonger dans les paramètres Chrome profonds, etc.

spekdrum
la source
1
J'ai eu des problèmes avec les autres suggestions - peut-être parce que j'avais besoin d'ouvrir plusieurs pages Web différentes en même temps, toutes sur le même domaine mais sur des serveurs différents, certains de ces serveurs Web utilisant https, d'autres simples http. Rien d'autre ne fonctionne que la "fenêtre de navigation privée"!
Klaws
Cela fonctionne, mais cela rend mes demandes AJAX extrêmement lentes à cause des en-têtes provisoires.
Twigs
5

Rien de tout cela n'a fonctionné pour moi. Cela a commencé à se produire après une mise à jour de chrome (version 63.0.3239.84, linux) avec une URL locale. Redirigerait toujours vers https, peu importe quoi. Perdu quelques heures et beaucoup de patience à ce sujet

Ce qui a fonctionné après tout, c'était juste de changer de domaine.

Pour ce qui vaut, le domaine était .app. Peut-être qu'il a quelque chose à faire? Et je l'ai juste changé en .test et Chrome a cessé de le rediriger

diogo.abdalla
la source
5

Comment j'ai résolu ce problème avec le chrome 79:

Collez simplement cette URL dans votre entrée de recherche chrome: // flags / # allow-insecure-localhost

Cela m'a aidé en utilisant des fonctionnalités expérimentales.

Ivan Efremov
la source
3

Malheureusement, aucune des solutions répertoriées ici ne m'a aidé à résoudre ce problème. J'ai résolu ce problème en utilisant http://127.0.0.1 (adresse IP) au lieu de http: // localhost . Un petit hack rapide pour travailler avec le développement angulaire avec le navigateur Chrome.

Venkatesh Muniyandi
la source
1

Dans mon cas, j'avais mon chemin de projet défini comme /Users/me/dev/project_root/et exécutais le serveur nodeJS/ à expresspartir de là. Renommer mon chemin vers /Users/me/project_root(supprimer devdu chemin vers le projet) a résolu le problème.

Il s'agit très probablement de ce nouveau règlement:

Chrome 63 (sorti depuis décembre 2017), forcera tous les domaines se terminant par .dev (et .foo) à être redirigés vers HTTPS via un en-tête HTTP Strict Transport Security (HSTS) préchargé.

Vous pouvez trouver plus d'informations à ce sujet ici .

En utilisant:

  • Google Chrome version 70.0.3538.110 (version officielle) (64 bits)
  • nodeJS v9.2.0
Kobbi Gal
la source
1

Une solution simple à cela consiste à modifier votre /etc/hostsfichier et à établir un alias par projet.

127.0.0.1   project1 project2 project3

Ces noms indémodables n'auront jamais le problème avec HSTS, sauf si vous envoyez la réponse HSTS mentionnée par @bigjump et avec l'avantage supplémentaire de maintenir votre session de connexion si vous changez d'avant en arrière entre les projets.

codeur de bateau
la source
0

Accédez aux paramètres dans Chrome, puis aux paramètres avancés, dans la section confidentialité et sécurité, cliquez sur Effacer les données de navigation, puis effacez toutes les données. J'ai suivi ces étapes et cela a fonctionné pour moi. J'espère que cela aide quelqu'un.

user9143776
la source
0

Chrome 63 force les domaines .dev automatiquement en HTTPS via HSTS préchargé.
Solution rapide: changez simplement les domaines .dev en .localhost.

Wouter Schoofs
la source
0

Ce n'est pas une solution, c'est juste une solution de contournement.

  1. Cliquez sur votre projet Visual Studio (niveau supérieur) dans l'explorateur de solutions et accédez à la fenêtre des propriétés.

  2. Modifiez SSL activé sur true. Vous verrez maintenant un autre numéro de port comme «URL SSL» dans la fenêtre des propriétés.

  3. Maintenant, lorsque vous exécutez votre application (ou affichez dans le navigateur), vous devez changer manuellement le numéro de port par le numéro de port SSL dans la barre d'adresse.

Maintenant, cela fonctionne bien en tant que lien SSL

Arunabh Mukherjee
la source
0

Ouvrez Chrome Developer Tools-> allez à Network-> sélectionnez Disable Cache-> recharger

Ben Bieler
la source
-1

Pour quelqu'un qui a eu le même problème, j'ai résolu en appuyant sur CTRL + MAJ + SUPPR pour supprimer uniquement le cache du navigateur. Maintenant, je peux accéder à mon site Web localhost sur le protocole HTTP.

Renan Coelho
la source
-2

La réponse @Adiyat Mubarak n'a pas fonctionné pour moi. Lorsque j'ai tenté de vider le cache et de recharger, la page était toujours redirigée vers https.

Ma solution: dans le coin supérieur droit de la barre d'url (juste à gauche de l'icône d'étoile des favoris), il y a une icône avec un "x" à travers. Faites un clic droit sur cela, et cela dira quelque chose sur les "scripts dangereux", puis il y a une option pour les charger quand même. Faites ça.

cph2117
la source
Savez-vous quel est le nom de cette option ou où la trouver? Je ne vois pas le raccourci dans ma barre d'URL.
Carolyn Conway
@CarolynConway Je ne sais pas trop comment ça s'appelle. Il est possible que cela n'apparaisse que pour mon problème particulier.
cph2117
-2

Une autre option serait d'utiliser quelque chose comme https://github.com/rchampourlier/tunnelss

Bien sûr, il a ajouté une autre dépendance / configuration, mais il permet également de tester https en dev, ce qui pourrait être bien.

J'utilise RVM cependant pour faire fonctionner les tunnels que je devais utiliser sudo gem install tunnelssetsudo tunnelss

Mr ISH
la source
-4

C'est la solution la plus rapide aujourd'hui (17-3-2018):

Fermez tous les onglets / fenêtres Chrome et exécutez ceci sur votre ligne de commande: (ou ajoutez-le en tant que shortcode)

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors
gtamborero
la source