Chrome: il sito Web utilizza HSTS. Errori di rete ... questa pagina probabilmente funzionerà in seguito


162

Sto sviluppando contro localhost. Questa mattina, subito dopo aver usato il violinista, ho iniziato a ricevere questo errore su Chrome (funziona correttamente in Firefox)

"Non puoi visitare localhost in questo momento perché il sito Web utilizza HSTS. Gli errori e gli attacchi di rete sono generalmente temporanei, quindi questa pagina probabilmente funzionerà in seguito." inserisci qui la descrizione dell'immagine

Ora localhost funziona in Chrome solo se il violinista è in esecuzione. Mi sono già assicurato che i reindirizzamenti proxy che il violinista fa siano corretti quando il violinista si spegne.

Ho anche provato a importare il certificato nella mia radice attendibile e a riavviare il browser (e anche la macchina).


2
Riscontro questo problema quando l'amministratore IT modifica le proprie politiche. Tutto quello che devo fare è eseguire il comando: gpupdate / force
Jacob Phan,

Risposte:


192

Un modo molto rapido per aggirare questo è, quando stai visualizzando la schermata "La tua connessione non è privata":

genere badidea

tipo thisisunsafe(credito a The Java Guy per aver trovato la nuova passphrase)

Ciò consentirà l'eccezione di sicurezza quando Chrome non consente altrimenti di impostare l'eccezione tramite click-through, ad esempio per questo caso HSTS.

Ciò è consigliato solo per connessioni locali e macchine virtuali di rete locale, ovviamente, ma ha il vantaggio di lavorare per macchine virtuali utilizzate per lo sviluppo (ad es. Connessioni locali port forwarding) e non solo per connessioni localhost locali.

Nota: gli sviluppatori di Chrome hanno modificato questa passphrase in passato e potrebbero farlo di nuovo. Se badideasmette di funzionare, lascia una nota qui se impari la nuova passphrase. Proverò a fare lo stesso.

Modifica: dal 30 gennaio 2018 questa frase sembra non funzionare più.

Se riesco a cercarne uno nuovo, lo posterò qui. Nel frattempo, mi prenderò il tempo per impostare un certificato autofirmato usando il metodo descritto in questo post di StackOverflow:

Come creare un certificato autofirmato con openssl?

Modifica: a partire dal 1 marzo 2018 e dalla versione 64.0.3282.186 di Chrome questa passphrase funziona di nuovo per i blocchi relativi a HSTS sui siti .dev.

Modifica: dal 9 marzo 2018 e dalla versione 65.0.3325.146 di Chrome la badideapassphrase non funziona più.

Modifica 2: il problema con i certificati autofirmati sembra essere che, con gli standard di sicurezza più severi in questi giorni, causano il lancio dei propri errori (nginx, ad esempio, rifiuta di caricare un certificato SSL / TLS che include un certificato autofirmato nella catena di autorità, per impostazione predefinita).

La soluzione con cui sto andando ora è quella di scambiare il dominio di primo livello su tutti i miei siti di sviluppo .app e .dev con .test o .localhost. Chrome e Safari non accetteranno più connessioni non sicure a domini di primo livello standard (incluso .app).

L'elenco attuale di domini di primo livello standard è disponibile in questo articolo di Wikipedia, inclusi i domini per uso speciale:

Wikipedia: Elenco dei domini di primo livello di Internet: domini per uso speciale

Questi domini di primo livello sembrano essere esenti dalle nuove restrizioni solo https:

  • .Locale
  • .localhost
  • .test
  • (qualsiasi dominio di livello superiore personalizzato / non standard)

Vedere la risposta e il collegamento da codinghands alla domanda originale per ulteriori informazioni:

risposta da codinghands


19
mai sentito parlare di qualcosa del genere ma per qualche motivo funziona! Grazie!
Alexey,

enorme aiuto! Grazie mille!
RHSmith159

Non riesco nemmeno a credere che funzioni ma lo fa. Non sono sicuro se dovrei essere felice o incazzato che questo non sia documentato; Ho passato ORE negli anni a occuparmi di questa schifezza negli ambienti Dev.
Scott Byers,

7
Usa thisisunsafeapprofondimento di badidea. Questo è stato modificato con la nuova versione
The Java Guy

funziona +1, tuttavia Chrome dovrebbe davvero aggiungere un'opzione per continuare ancora con gli avvisi, invece di bloccare
5413668060

186

Quando in precedenza hai visitato https: // localhost ad un certo punto, non solo lo ha visitato su un canale sicuro (https anziché http), ma lo ha anche detto al tuo browser, utilizzando un'intestazione HTTP speciale: Strict-Transport-Security (spesso abbreviato in HSTS ), che dovrebbe usare SOLO https per tutte le visite future.

Questa è una funzione di sicurezza che i server Web possono utilizzare per impedire il downgrade delle persone a http (intenzionalmente o da una parte malvagia).

Tuttavia, se poi si spegne il server https e si desidera semplicemente navigare in http non è possibile (in base alla progettazione, questo è il punto di questa funzionalità di sicurezza).

HSTS ti impedisce anche di accettare e saltare gli errori del certificato passati.

Per reimpostarlo, quindi HSTS non è più impostato per localhost, digita quanto segue nella barra degli indirizzi di Chrome:

chrome://net-internals/#hsts

Dove sarai in grado di eliminare questa impostazione per "localhost".

Potresti anche voler scoprire cosa lo stava impostando per evitare questo problema in futuro!

Nota che per altri siti (ad es. Www.google.com) questi sono "precaricati" nel codice Chrome e quindi non possono essere rimossi. Quando li interroghi su chrome: // net-internals / # hsts li vedrai elencati come staticvoci HSTS.

E infine nota che Google ha iniziato a precaricare HSTS per l'intero dominio .dev: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/


Lo sto ricevendo per gmail.com. Sono andato su chrome: // net-internals / # hsts e ho interrogato gmail.com, ho trovato: static_sts_domain: gmail.com static_upgrade_mode: STRICT Ho provato a cancellare il dominio, ma sto ancora riscontrando il problema.
paiego,

Questa risposta ha senso per me. Il mio problema è che ho cambiato il nameserver di un sito Web da wordpress (wordpress ospitato) al mio server (self hosted) e ora ottengo questo e presumibilmente lo faranno anche tutti i visitatori di Chrome. Hai idea di come aggirarlo per i visitatori senza che cancellino la loro cache?
TomC,

2
Fondamentalmente l'unica risposta è utilizzare HTTPS in futuro o sperare che gli utenti non lo abbiano memorizzato nella cache. HTTPS è la via da seguire e libera da LetsEncrypt. Dovresti anche verificare se qualcuno ha precaricato il tuo sito al codice del browser, ma indovina se non sei in grado di ripristinarlo da solo. Non sono a conoscenza di Wordpress che aggiunge automaticamente HSTS, quindi mi chiedo come sia successo lì.
Barry Pollard,

Grazie @BazzaDP - non riesco a vedere un modo per aggirare questo. Potrei dover cambiare nuovamente i nameserver, scoprire cosa sul vecchio sito stava forzando HTTPS, quindi provare a migrare di nuovo. Non puoi semplicemente FTP dai blog ospitati da Wordpress al nuovo sito, motivo per cui questo è un problema per me e il nuovo proprietario del sito non ha un certificato SSL (anche se seriamente considerando di ottenerne uno comunque)
TomC

2
Come ho già detto nella mia risposta, le voci precaricate (o STS statiche) non possono essere eliminate in quanto esistono nel codice Chrome e non in un elenco gestito localmente. E come per l'ultima riga della mia risposta, Google ha deciso di precaricare l'intero dominio di sviluppo.
Barry Pollard,

24

Fai clic in un punto qualsiasi della finestra di Chrome e digita thisisunsafe(anziché in badideaprecedenza) in Chrome.

Questa passphrase potrebbe cambiare in futuro. Questa è la fonte

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

Secondo quella linea, digita la window.atob('dGhpc2lzdW5zYWZl')tua console del browser e ti darà la passphrase effettiva.

Questa volta la passphrase è thisisunsafe.


19

Ho avuto questo problema con i siti in esecuzione su XAMPP con nomi host privati. Non così privato, si scopre! Erano tutti domain.dev, che Google ha ora registrato come gTLD privato e sta forzando HSTS a livello di dominio. Modificato ogni host virtuale in .devel(eugh), riavviato Apache e ora tutto va bene.


Posso confermare questo problema con Opera 50.0.2762.9 e che il passaggio dal mio dominio di sviluppo .deva .develaggira la restrizione.
Courtney Miles,

5
RFC 2606 si riserva alcuni domini di primo livello specificamente per prevenire conflitti con test privati. Sembra che .testsia forse il più corretto a cui passare per gli ambienti di sviluppo.
Courtney Miles,

Questo mi ha letteralmente salvato la vita dopo giorni di incapacità di capire perché Chrome si comportava in quel modo sul mio .devdominio localhost ... Dio, chi lo avrebbe saputo ...
D. Petrov,

Bene, in realtà .test è consigliato solo per testare il codice DNS attuale o nuovo.
Alexey,

Questo qui ha risolto il mio problema. Sto usando Laragon per il mio ambiente di sviluppo.
Craig,

12

Recentemente ho avuto lo stesso problema durante il tentativo di accesso che utilizzano domini CloudFlare origine CA .

L'unico modo per trovare una soluzione alternativa / evitare l'eccezione cert HSTS su Chrome (build di Windows) era seguire le brevi istruzioni in https://support.opendns.com/entries/66657664 .

La soluzione alternativa:
aggiungi a Chrome la scorciatoia della bandiera --ignore-certificate-errors, quindi riaprila e naviga sul tuo sito web.

Promemoria:
utilizzalo solo a scopo di sviluppo.

inserisci qui la descrizione dell'immagine


Magari prova con Google Canary a costruire google.com/chrome/browser/canary.html
Binyamin

Supponiamo di non avere un sito che causa un errore cert. Quindi, come verifichi se la tua soluzione funziona? Non aiuta qui - stackoverflow.com/questions/41902367/...
MasterJoe2

Che ne dici di versioni Mac?
The Java Guy



2

Riscontro lo stesso errore e anche la modalità di navigazione in incognito ha lo stesso problema. Risolvo questo problema cancellando la cronologia di Chrome.


2

Ho sofferto di questo problema per molto tempo. Non sono stato in grado di aprire siti Web come GitHub. Ho quasi provato tutte le risposte sul web e nessuno ha funzionato. Ho provato a reinstallare anche Chrome. Ho trovato la soluzione per questo dal nostro ragazzo di rete e ha funzionato. C'è una correzione nel registro che risolverà questo errore per una base permanente.

  1. Premi il tasto Windows + R per aprire la finestra di dialogo Esegui
  2. digitare: regedit e premere Invio per aprire il registro
  3. Nella vista ad albero a sinistra fare clic sul seguente percorso HKEY_LOCAL_MACHINE> SOFTWARE> POLITICHE> Microsoft> Certificato di sistema> Authroot
  4. Ora fai doppio clic su DisableRootAutoUpdate sulla destra e impostalo su 0 (zero) nella finestra di dialogo che appare
  5. Riavvia il PC per applicare le modifiche al registro e non otterrai più questo errore

La soluzione sopra è per Windows 8. È quasi identica nelle versioni successive ma non sono sicuro per le versioni precedenti come XP e Vista. Quindi deve essere verificato.


Sai cosa significa questa opzione?
MasterJoe2,

@ testerjoe2: No signore
Maulik Modi

1
Soffrivo di questo google-analytics.com insieme a vari altri domini di Google. Questa risposta ha risolto il mio problema.
Shawn,

L'articolo su support.microsoft.com/en-us/help/2813430/… spiega il comportamento delle chiavi introdotte in una patch per Windows Vista. Se si imposta questo particolare valore su 0, i certificati radice aggiornati vengono recuperati automaticamente da Windows Update e installati nell'archivio delle autorità di certificazione radice attendibili. In un ambiente aziendale, questo può essere disattivato come misura di sicurezza; tuttavia, ciò significa che qualcuno dovrebbe gestire le autorità di certificazione radice affidabili a livello aziendale.
JamieVedi
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.