Google Chrome reindirizza localhost su https


362

Quando eseguo il debug di un progetto di Visual Studio utilizzando Chrome, il browser tenta di reindirizzare all'equivalente https del mio indirizzo web. SSL non è abilitato nel progetto Web e l'URL iniziale è l'URL http. Quando eseguo il debug utilizzando FireFox o IE non ho questo problema.

Ho reinstallato Chrome che ha risolto il problema per un giorno. Senza scaricare alcun componente aggiuntivo il problema si è verificato nuovamente il giorno successivo.

Cosa sta facendo reindirizzare Chrome localhost su https?

Spettacoli Network Inspect: URL richiesta: dati: text / html, chromewebdata Richiedi intestazioni Vengono mostrate le intestazioni provvisorie User-Agent: Mozilla / 5.0 (Windows NT 6.3; WOW64) AppleWebKit / 537.36 (KHTML, come Gecko) Chrome / 36.0.1985.143 Safari / 537,36

Nessuna anteprima e nessun dato di risposta in quelle schede.


cosa mostra Network Inspector?
c69,

4
Network Inspect non mostra molto. Non riesco nemmeno a vedere l'URL richiesto. URL richiesta: dati: text / html, chromewebdata Intestazioni richieste Vengono visualizzate le intestazioni provvisorie Controllo cache: no cache Pragma: no cache User-Agent: Mozilla / 5.0 (Windows NT 6.3; WOW64) AppleWebKit / 537.36 (KHTML, come Gecko ) Chrome / 36.0.1985.143 Safari / 537.36
Brett Mathe,

CROMO 63: continua a scorrere per le risposte
nordamericano

Semplicemente reinstallando il mio Chrome risolve tutti i problemi .. ora il mio .dev e non reindirizzare più su HTTPS. Vorrei averlo provato prima .. ho perso così tanto tempo ..
Taj Khan,

10
Chiunque abbia recentemente questo problema, se stai cercando di utilizzare .devcome doman locale, è un problema completamente nuovo, quindi non credo che nessuna di queste risposte funzionerà più. A partire da Chrome 63 ... "Chrome per forzare domini .dev su HTTPS tramite HSTS precaricato". Quindi non più certificati SSL autofirmati. Apparentemente .dev è un dominio reale. Chi lo sapeva.
Trevor,

Risposte:


592

Credo che questo sia causato da HSTS - vedi http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security

Se hai (sviluppato) altri siti localhost che inviano un'intestazione HSTS ...

per esempio. Sicurezza di trasporto rigorosa: età massima = 31536000; includeSubDomains; precarico

... quindi, a seconda del valore di max-age, le richieste future a localhost saranno richieste su HTTPS.

Per aggirare questo, ho fatto quanto segue.

  • Nella barra degli indirizzi di Chrome digitare "chrome: // net-internals / # hsts"
  • Nella parte inferiore di una pagina c'è la casella di testo del dominio QUERY - verifica che localhost sia noto al browser. Se dice "Non trovato", questa non è la risposta che stai cercando.
  • In tal caso, ELIMINA il dominio localhost utilizzando la casella di testo sopra
  • Il tuo sito ora dovrebbe funzionare usando il semplice vecchio HTTP

Questa non è una soluzione permanente, ma almeno la farà funzionare tra i progetti. Se qualcuno sa come escludere definitivamente localhost dall'elenco HSTS, per favore fatemi sapere :)

AGGIORNAMENTO - Novembre 2017

Chrome ha recentemente spostato questa impostazione per posizionarsi sotto Elimina criteri di sicurezza del dominio

inserisci qui la descrizione dell'immagine

AGGIORNAMENTO - Dicembre 2017 Se si utilizza il dominio .dev, vedere di seguito altre risposte come Chrome (e altri) imporre HTTPS tramite HSTS precaricato.


6
Così frustrante. Ma così felice di aver trovato la causa.
Zapnologica,

21
Ho provato a cercare "localhost" ma dice Non trovato
Chin

2
So che questo è un vecchio post, ma hai idea di come risolvere se, interrogando localhost secondo la risposta accettata, restituisce "non trovato"? Ho provato di tutto in tutti i commenti e le risposte qui.
DarkW1nter

28
Questa è la spazzatura totale di Chrome. Come si aspettano che sviluppiamo localmente quando iniziano arbitrariamente a costringerti a HTTPS sul tuo pessimo localhost? Ho usato tutto perfettamente per mesi, accedo una mattina e ho a che fare con questa merda. Nessuna di queste "correzioni" funziona per me.
Alison,

50
Se il tuo dominio localhost è .dev allora credo che questo non funzioni @Alison a causa della recente versione di v.63 ... "Chrome per forzare i domini .dev su HTTPS tramite HSTS precaricato". In quanto tale, .dev praticamente non funzionerà più a meno che tu non abbia un certificato SSL correttamente firmato. Non sono più consentiti certificati autofirmati. Maggiori dettagli .
Trevor,

308

Ho riscontrato lo stesso problema in Chrome e ho provato senza successo a utilizzare la soluzione di BigJump .

Ho risolto il mio problema forzando un duro aggiornamento, come mostrato in questo blog (originariamente da questa risposta SuperUser ).

Assicurati che la barra degli indirizzi stia utilizzando lo schema http e quindi segui questi passaggi, possibilmente un paio di volte:

  1. Apri il pannello Strumenti per sviluppatori (CTRL + MAIUSC + I)
  2. Fare clic e tenere premuta l'icona di ricarica / Fare clic con il pulsante destro del mouse sull'icona di ricarica.
  3. Si aprirà un menu.
  4. Scegli la terza opzione da questo menu ("Svuota cache e Ricarica dura")

3
È inoltre possibile fare clic con il pulsante destro del mouse sull'icona Aggiorna / Ricarica per accedere al menu Ricarica
avanzata

3
Non riesco a far funzionare questa soluzione. Il problema è che esegue un ricaricamento intenso su localhost: 3000 (nel mio caso). Tentativo di modificare il protocollo prima del ricaricamento ma che non funziona.
john_omalley,

1
Grazie!!! Questo ripristina localhost originale: porta se hai incasinato il tuo startup.cs con questo ... var options = new RewriteOptions (). AddRedirectToHttpsPermanent (); app.UseRewriter (opzioni); }
hubert17,

Ha funzionato per me premendo "CTRL + MAIUSC + R" per un ricaricamento intenso.
LP. Gonçalves,

Sul cromo, è F12 e non CTRL + MAIUSC + I
Champ

190

NUOVI SVILUPPI! (se hai Chrome 63+)

Se il tuo dominio localhost è .devallora non credo che le risposte precedentemente accettate e funzionanti non siano più applicabili. Questo perché a partire dal Chrome 63 Chrome forzerà i domini .dev su HTTPS tramite HSTS precaricato.

Ciò significa che, .devfondamentalmente, non funzionerà più a meno che tu non abbia un certificato SSL correttamente firmato - non sono più consentiti certificati autofirmati! Scopri di più in questo post sul blog.

Quindi, per risolvere questo problema ora e per evitare che ciò accada di nuovo in futuro, .testè un dominio consigliato perché è riservato da IETF a scopo di test / sviluppo. Dovresti anche essere in grado di utilizzare .localhostper gli sviluppatori locali.


2
Ho cambiato tutti i domini .dev in .app, sempre lo stesso problema. Qualche suggerimento su quale potrebbe essere il problema?
Jeff,

5
@Jeff prova ad usare.test
Vitalii Zurian il

18
Questo è ESTREMAMENTE fastidioso. Sicuramente ci deve essere un modo per non costringerci a cambiare il nostro dominio di sviluppo, giusto?
Emanuele Ciriachi,

5
sostituzione .devcon .testlavorato per me anche in Chrome 63
Lekhnath

12
Questi valori di default non intuitivi sono terribili. Perché dovremmo perdere tempo a eseguire il debug della loro configurazione dell'ambiente di sviluppo, o solo a indovinare cosa non va, solo per scoprire che tutto va bene dalla loro parte ed è Google Chrome che reindirizza .dev a HTTPS per impostazione predefinita. Dov'è la logica. Perché .dev e perché non altri TLD? Assolutamente non intuitivo.
Meglio il

50

A due passi da Adiyat Mubarak

Impossibile aggiornare con difficoltà poiché si stava semplicemente aggiornando su https. Segue alcuni degli stessi passaggi.

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)

Sono qui la seconda volta per la soluzione. Grazie molto.
Čamo,

1
Sto usando un dominio .local e questo ha funzionato quando la soluzione HSTS sopra non ha funzionato.
DiegoSalazar,

Questa è l'unica cosa che ha funzionato per me dopo aver provato le soluzioni di BigJump e Adiyat Mubarak.
Alek Arsovski,

La disabilitazione della cache era necessaria anche per me. Questo problema ha iniziato a verificarsi a me dopo aver chiuso Fiddler.
CounterFlame,

47

Sto affrontando lo stesso problema, ma solo in Chrome Canary e cercando una soluzione ho trovato questo post .

una delle prossime versioni di Chrome imporrà a tutti i domini che terminano su .dev (e .foo) di essere reindirizzati a HTTP tramite un'intestazione HTTP Strict Transport Security (HSTS) precaricata.

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

Quindi, cambia i tuoi domini.


2
questo è il problema che sono venuto qui per risolvere. amico, ora devo inventare un falso tld diverso per i miei siti di sviluppo locali ...
Matt Lohkamp,

2
Dal wiki , .localsembra un po 'fragile, anche se immagino sia più sicuro di altri TLD. Sto anche ritirando l'uso di .localhostcoz, sembra che Chrome esegua un reindirizzamento nativo che sembra impedire al mio rproxy di funzionare. .testsembra più sicuro, anche se grosso a causa di scontri nello spazio dei nomi con tutte quelle stringhe utilizzate in TDD / .test()metodi ecc.
dwelle

8
Ho perso un giorno su questo. Grazie mille
Tonio

17
accidenti, appena aggiornato a Chrome 63 e ora questo mi sta colpendo per .dev. WTF. Non mi importa se si tratta di un TLD valido o meno, se non ho bisogno o non voglio o se il mio sito utilizza SSL, non imporlo su di me.
Dbinott,

6
Wow, questo mi fa incazzare. Per alcuni ambienti di sviluppo non è così semplice come cambiare semplicemente il tld. Sto cercando ore di lavoro per cambiarlo per quello su cui sto lavorando. Non sono proprio i loro affari quello che voglio usare per lo sviluppo.
Brett Thomas,

18

Chrome 63 (in uscita da dicembre 2017) forzerà il reindirizzamento a HTTPS di tutti i domini che terminano con .dev (e .foo) tramite un'intestazione HTTP Strict Transport Security (HSTS) precaricata. Puoi trovare maggiori informazioni al riguardo qui.


2
^^ Idem. Ha interessato anche i nostri .appdomini nell'ultima settimana. Passiamo temporaneamente a, .testanche se non credo sia una soluzione a lungo termine.
Russellmania,

13

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

Nessuna delle correzioni delle opzioni ha funzionato per me, per la correzione https://localhost:3000, questo ha funzionato.

fai clic e tieni premuto il Reloadpulsante e seleziona Empty Cache and Hard Reload, questa sembra essere solo un'opzione attivalocalhost


questo non funziona alla mia fine. c'è un'altra soluzione?
Raju Paladiya,

Chrome aggiornato più recente, quindi questa soluzione non funzionerà più.
user2167582

1
Questo dovrebbe funzionare su tutti i domini se la barra degli strumenti per sviluppatori è aperta
Hussam,

7

Ho anche avuto problemi con questo problema. Sembra che HSTS sia destinato solo a nomi di dominio . Quindi, se si sta sviluppando nel computer locale, è molto più facile usare l'indirizzo IP. Quindi sono passato da localhost a 127.0.0.1


Va bene, ma è possibile garantire ogni volta che si digita localhost, sostituisce le parole localhost con 127.0.0.1?
Simon,

Grazie mille
hedha,

6

Non ho mai capito la radice del problema, tuttavia sono stato in grado di risolvere questo problema. Ho eliminato la cartella della cache dell'app Google Chrome che ha risolto il problema.

C: \ Users [gli utenti] \ AppData \ Local \ Google \ Chrome


1
Hai perso tutta la cronologia o le password del browser?
Zapnologica,

7
Credo che il problema sia che Chrome memorizza quando visiti un dominio utilizzando HTTPS e quindi se visiti di nuovo lo stesso dominio passa automaticamente a HTTPS. È una seccatura come sviluppatore perché una volta che accedi a qualsiasi sito localhost utilizzando HTTPS, improvvisamente tutti i siti locahost vengono reindirizzati a HTTPS.
Dale K,

1
@DaleBurrell Non hai ragione. Ciò è causato da HSTS: en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
langpavel

6

Ciò può essere causato da un reindirizzamento https nella cache e può essere corretto cancellando la cache manualmente come nella risposta di Adiyat Mubarak.

Ma se stai visitando localhost probabilmente sei uno sviluppatore, nel qual caso troverai un'estensione di Chrome che cancella la cache come "classic cache killer" (vedi ad esempio https://chrome.google.com/webstore/search/classic%20cache % 20killer? Hl = en ) utile in varie situazioni e probabilmente ne è già installato uno.

Quindi la soluzione rapida è: installa un killer della cache (se non ne hai già uno), accendilo e ricarica la pagina. Fatto!


Questo risolto il problema
Makdu,

6

Una soluzione pigra e veloce per persone pigre come me (che lavora in Chrome 67).

Basta avviare un'altra finestra di Chrome in modalità invisibile , con l'opzione "Finestra di navigazione in incognito" (CTRL + MAIUSC + N). Non è necessario eliminare la cache, non è necessario immergersi nelle impostazioni di Chrome avanzate, ecc.


1
Ho avuto problemi con gli altri suggerimenti - forse perché avevo bisogno di avere diverse pagine Web aperte contemporaneamente, tutte sullo stesso dominio ma su server diversi, alcuni di questi server web che utilizzano https, altri semplicemente http. Nient'altro funziona se non la "finestra di navigazione in incognito"!
Klaws,

Funziona, ma rende le mie richieste AJAX estremamente lente a causa delle intestazioni provvisorie.
Ramoscelli

5

Nessuno di questi ha funzionato per me. È iniziato dopo un aggiornamento di Chrome (versione 63.0.3239.84, Linux) con un URL locale. Reindirizzerei sempre a https, non importa quale. Ho perso alcune ore e molta pazienza su questo

Ciò che ha funzionato dopo tutto è stato solo cambiare il dominio.

Per quello che vale, il dominio era .app. Forse ha qualcosa da fare? E l'ho appena cambiato in .test e Chrome ha smesso di reindirizzarlo


5

Come ho risolto questo problema con Chrome 79:

Basta incollare questo URL nella ricerca input chrome: // flags / # allow-insecure-localhost

Mi ha aiutato usando funzionalità sperimentali.


3

Sfortunatamente, nessuna delle soluzioni elencate qui mi ha aiutato a risolvere questo problema. Ho risolto questo problema utilizzando http://127.0.0.1 (indirizzo IP) anziché http: // localhost . Un piccolo trucco rapido per lavorare con lo sviluppo angolare con il browser Chrome.


1

Nel mio caso, avevo impostato il percorso del mio progetto come /Users/me/dev/project_root/ed eseguivo il nodeJS/ expressserver da lì. Rinominare il mio percorso in /Users/me/project_root(rimuovendo devdal percorso al progetto) risolto il problema.

Molto probabilmente ha a che fare con questo nuovo regolamento:

Chrome 63 (in uscita da dicembre 2017) forzerà il reindirizzamento a HTTPS di tutti i domini che terminano su .dev (e .foo) tramite un'intestazione HTTP Strict Transport Security (HSTS) precaricata.

Puoi trovare maggiori informazioni al riguardo qui .

usando:

  • Google Chrome versione 70.0.3538.110 (build ufficiale) (64 bit)
  • nodeJS v9.2.0

1

Una soluzione semplice a ciò è modificare il /etc/hostsfile e stabilire un alias per progetto.

127.0.0.1   project1 project2 project3

Questi nomi senza dominio non avranno mai il problema con HSTS a meno che non si invii la risposta HSTS menzionata da @bigjump e con l'ulteriore vantaggio di mantenere la sessione di accesso se si passa da un progetto all'altro.


0

Vai alle impostazioni in Chrome e quindi alle Impostazioni avanzate, nella sezione privacy e sicurezza fai clic su Cancella dati di navigazione e quindi cancella tutti i dati. Ho seguito questi passaggi e ha funzionato per me. Spero che aiuti qualcuno.


0

Chrome 63 forza i domini .dev automaticamente su HTTPS tramite HSTS precaricato.
Soluzione rapida: basta cambiare i domini .dev in .localhost.


0

Questa non è una soluzione, è solo una soluzione alternativa.

  1. Fai clic sul progetto Visual Studio (livello superiore) in Esplora soluzioni e vai alla finestra delle proprietà.

  2. Cambia SSL abilitato su true. Ora vedrai un altro numero di porta come "URL SSL" nella finestra delle proprietà.

  3. Ora, quando esegui l'applicazione (o visualizzi nel browser), devi modificare manualmente il numero di porta con il numero di porta SSL nella barra degli indirizzi.

Ora funziona bene come collegamento SSL


0

Apri Chrome Developer Tools-> vai a Network-> seleziona Disable Cache-> ricarica


-1

Per qualcuno che ha avuto lo stesso problema ho risolto premendo CTRL + MAIUSC + CANC per eliminare solo l'intera cache del browser. Ora posso accedere al mio sito web localhost sul protocollo HTTP.


-2

La risposta di @Adiyat Mubarak non ha funzionato per me. Quando ho tentato di svuotare la cache e ricaricare, la pagina veniva reindirizzata su https.

La mia soluzione: nell'angolo in alto a destra della barra dell'URL (appena a sinistra dell'icona della stella dei preferiti) c'è un'icona con una "x" attraverso di essa. Fai clic destro su questo, e dirà qualcosa su "script non sicuri", quindi c'è un'opzione per caricarli comunque. Fai quello.


Sai qual è il nome di questa opzione o dove altro trovarla? Non vedo il collegamento nella barra degli URL.
Carolyn Conway,

@CarolynConway Non sono sicuro di come si chiama. È possibile che appaia solo per il mio problema specifico.
cph2117,

-2

Un'altra opzione sarebbe quella di utilizzare qualcosa come https://github.com/rchampourlier/tunnelss

Sicuramente ha aggiunto un'altra dipendenza / configurazione, ma consente anche il test di https in dev, il che potrebbe essere bello.

Uso RVM tuttavia per far funzionare i tunnel che ho dovuto usare sudo gem install tunnelssesudo tunnelss


-4

Questa è la soluzione più veloce oggi (17-3-2018):

Chiudi tutte le schede / finestre di Chrome ed esegui dalla riga di comando questo: (o aggiungilo come shortcode)

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.