web-dev-qa-db-fra.com

Google Chrome redirige localhost vers https

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. SSL n’est pas activé dans le projet Web et l’URL de départ est l’URL http. Lorsque je débogue en utilisant FireFox ou IE, je n'ai pas ce problème.

J'ai réinstallé Chrome, qui a résolu le problème pendant un jour. Sans télécharger aucun addon, le problème se reproduisit le lendemain.

Qu'est-ce qui fait que Chrome redirige localhost vers https?

Network Inspect indique: URL de la demande: données: text/html, chromewebdata En-tête de la demande KHTML, comme Gecko) Chrome/36.0.1985.143 Safari/537.36

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

275
Brett Mathe

Je pense que cela est dû au HSTS - voir http://fr.wikipedia.org/wiki/HTTP_Strict_Transport_Security

Si vous avez (développé) un autre site localhost qui envoie un en-tête HSTS ...

par exemple. Strict-Transport-Security: âge maximum 31536000; includeSubDomains; précharge

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

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

  • Dans la barre d'adresse Chrome, tapez "chrome: // net-internals/# hsts"
  • Au bas de la page se trouve la zone de texte du domaine QUERY - vérifiez que localhost est connu du navigateur. Si le message "Introuvable" apparaît, il ne s'agit pas de 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 du vieux HTTP ordinaire

Ce n'est pas une solution permanente, mais au moins cela fonctionnera entre projets. Si quelqu'un sait comment exclure de manière permanente localhost de la liste HSTS, veuillez me le faire savoir :)

MISE À JOUR - Novembre 2017

Chrome a récemment déplacé ce paramètre pour s'inscrire sous Supprimer les stratégies de sécurité du domaine

 enter image description here

UPDATE - Décembre 2017 Si vous utilisez le domaine .dev, reportez-vous aux autres réponses ci-dessous, car Chrome (et autres) forcent HTTPS via HST préchargé.

432
BigJump

J'ai rencontré le même problème dans Chrome et j'ai essayé sans succès 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'adresses utilise le schéma http, puis suivez ces étapes, éventuellement plusieurs fois:

  1. Ouvrez le panneau Outils de développement (CTRL + SHIFT + I). 
  2. Cliquez et maintenez l’icône de rechargement/cliquez avec le bouton droit de la souris sur l’icône de rechargement. 
  3. Un menu va s'ouvrir. 
  4. Choisissez la 3ème option de ce menu ("Cache vide et rechargement dur")
247
Adiyat Mubarak

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

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

Cela signifie que .dev ne fonctionnera plus du tout, à moins que vous n'ayez un certificat SSL dûment signé - aucun autre certificat auto-signé n'est autorisé! En savoir plus sur ce blog.

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

175
Trevor

Je suis confronté au même problème, mais uniquement dans Chrome Canary et à la recherche d'une solution ayant 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 préchargé Strict Transport Security (HSTS).

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

Alors changez de domaine.

47
rafawhs

Piggybacking Adiyat Mubarak

Impossible d'actualiser, car l'actualisation s'effectue simplement 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)
39
Steven Johnston

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

18
Tai Ho

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

Aucune des corrections d’option n’a fonctionné pour moi; cela a fonctionné pour la correction de https://localhost:3000.

cliquez sur le bouton Reload et maintenez-le enfoncé, puis sélectionnez Empty Cache and Hard Reload. Cette option ne semble être qu'une option sur localhost.

9
user2167582

J'ai également été aux prises 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 une adresse IP. J'ai donc passé de localhost à 127.0.0.1

6
siim

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

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

6
Brett Mathe

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

Mais si vous visitez localhost, vous êtes probablement un développeur. Dans ce cas, vous trouverez une extension chromée d'effacement de cache telle que "classic cache killer" (voir par exemple https://chrome.google.com/webstore/search/classic % 20cache% 20killer? Hl = fr ) est utile dans une variété de situations et a probablement déjà été installé. 

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

5
CalderBot

Aucun de ceux-ci n'a fonctionné pour moi. Cela a commencé après une mise à jour de chrome (version 63.0.3239.84, linux) avec une URL locale. Serait toujours rediriger vers https, peu importe quoi. Perdu quelques heures et beaucoup de patience à ce sujet

Après tout, ce qui a bien fonctionné, c’était simplement changer de domaine. 

Pour ce qui vaut la peine, le domaine était .app. Peut-être qu'il a quelque chose à faire? Et vient de le changer en .test et Chrome a cessé de le rediriger

5
diogo.abdalla

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

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

1
spekdrum

Chrome 63 force les domaines .dev à passer automatiquement en HTTPS via HSTS préchargé. 
Solution rapide: il suffit de changer les domaines .dev en .localhost. 

1
Wouter Schoofs

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

0
user9143776

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 bidouillage rapide pour travailler avec le développement angulaire avec le navigateur chrome.

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. Définissez 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. Désormais, lorsque vous exécutez votre application (ou affichez-le dans le navigateur), vous devez modifier manuellement le numéro de port en numéro de port SSL dans la barre d'adresse.

Maintenant, cela fonctionne bien comme un lien SSL

0
Arunabh Mukherjee

Dans mon cas, mon chemin de projet était défini sur /Users/me/dev/project_root/ et le serveur nodeJS/express à partir de là . Renommer mon chemin en /Users/me/project_root (suppression de dev du chemin du projet) a résolu le problème.

Probablement à voir avec ce nouveau règlement:

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

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
0
Kobbi Gal