Chrome: o site usa HSTS. Erros de rede… esta página provavelmente funcionará mais tarde

161

Estou desenvolvendo contra localhost. Esta manhã, logo após usar o violinista, comecei a receber esse erro no chrome (funciona corretamente no firefox)

"Você não pode visitar o localhost agora porque o site usa HSTS. Os erros e ataques de rede geralmente são temporários, portanto esta página provavelmente funcionará mais tarde." insira a descrição da imagem aqui

Agora o localhost funciona no chrome apenas se o violinista estiver em execução. Eu já verifiquei se os redirecionamentos de proxy que o violinista faz são corrigidos quando o violinista é desligado.

Também tentei importar o certificado para minha raiz confiável e reiniciar o navegador (e também a máquina).

developer747
fonte
2
Encontro esse problema quando o administrador de TI altera suas políticas. Tudo que eu preciso fazer é executar o comando: gpupdate / force
Jacob Phan

Respostas:

189

Uma maneira rápida de contornar isso é quando você está visualizando a tela "Sua conexão não é privada":

tipo badidea

tipo thisisunsafe(crédito para The Java Guy por encontrar a nova senha)

Isso permitirá a exceção de segurança quando o Chrome não permitir que a exceção seja definida por meio de cliques, por exemplo, para este caso HSTS.

Isso é recomendado apenas para conexões locais e máquinas virtuais de rede local, obviamente, mas tem a vantagem de trabalhar para VMs que estão sendo usadas para desenvolvimento (por exemplo, em conexões locais encaminhadas por porta) e não apenas para conexões diretas de host local.

Nota: os desenvolvedores do Chrome alteraram essa senha no passado e podem fazê-lo novamente. Se badideaparar de funcionar, deixe uma nota aqui se você souber a nova senha. Vou tentar fazer o mesmo.

Editar: a partir de 30 de janeiro de 2018, esta senha parece não funcionar mais.

Se eu puder caçar um novo, eu o colocarei aqui. Enquanto isso, vou dedicar um tempo para configurar um certificado autoassinado usando o método descrito nesta postagem do stackoverflow:

Como criar um certificado autoassinado com o openssl?

Editar: a partir de 1 de março de 2018 e na versão 64.0.3282.186 do Chrome, essa senha funciona novamente para blocos relacionados ao HSTS em sites .dev.

Editar: a partir de 9 de março de 2018 e a versão 65.0.3325.146 do Chrome, a badideasenha não funciona mais.

Edit 2: o problema com certificados autoassinados parece ser que, com os padrões de segurança mais rígidos atualmente, eles causam seus próprios erros (o nginx, por exemplo, se recusa a carregar um certificado SSL / TLS que inclui um certificado autoassinado na cadeia de autoridade, por padrão).

A solução que vou usar agora é trocar o domínio de nível superior em todos os meus sites de desenvolvimento .app e .dev por .test ou .localhost. O Chrome e o Safari não aceitarão mais conexões inseguras com domínios de nível superior padrão (incluindo .app).

A lista atual de domínios de nível superior padrão pode ser encontrada neste artigo da Wikipedia, incluindo domínios de uso especial:

Wikipedia: Lista de domínios de nível superior na Internet: domínios de uso especial

Esses domínios de nível superior parecem estar isentos das novas restrições somente https:

  • .local
  • .localhost
  • .teste
  • (qualquer domínio de nível superior personalizado / não padrão)

Consulte a resposta e o link de mãos codificadas para a pergunta original para obter mais informações:

resposta de codinghands

Rick Gladwin
fonte
18
nunca ouvi falar de algo assim, mas por algum motivo funciona! obrigado!
Alex12:
ajuda maciça! Muito obrigado!
precisa saber é o seguinte
Eu nem acredito que isso funciona, mas funciona. Não tenho certeza se devo ficar feliz ou chateado por isso não estar documentado; Passei HOURS ao longo dos anos lidando com essa porcaria em ambientes de desenvolvimento.
Scott Byers
7
Use thisisunsafeinsread de badidea. Isso foi alterado com a nova versão
The Java Guy
ele funciona +1, no entanto cromo realmente deve adicionar uma opção para ainda continuar com avisos, em vez de apenas bloquear
5413668060
186

Quando você visitou https: // localhost anteriormente, em algum momento, não apenas o visitou por um canal seguro (https em vez de http), mas também informou ao navegador, usando um cabeçalho HTTP especial: Strict-Transport-Security (geralmente abreviado para HSTS ), que APENAS deve usar https para todas as visitas futuras.

Esse é um recurso de segurança que os servidores da Web podem usar para impedir que as pessoas sejam desatualizadas para http (intencionalmente ou por parte de um mal).

No entanto, se você desligar o servidor https e quiser navegar pelo http, não é possível (por padrão - esse é o objetivo desse recurso de segurança).

O HSTS também impede que você aceite e pule erros de certificado anteriores.

Para redefinir isso, para que o HSTS não seja mais definido como host local, digite o seguinte na barra de endereços do Chrome:

chrome://net-internals/#hsts

Onde você poderá excluir esta configuração para "localhost".

Você também pode descobrir o que estava definindo isso para evitar esse problema no futuro!

Observe que, para outros sites (por exemplo, www.google.com), eles são "pré-carregados" no código do Chrome e, portanto, não podem ser removidos. Ao consultá-los em chrome: // net-internals / # hsts, você os verá listados como staticentradas HSTS.

Por fim, observe que o Google começou a pré-carregar o HSTS para todo o domínio .dev: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

Barry Pollard
fonte
Estou recebendo isso para gmail.com. Fui ao chrome: // net-internals / # hsts e consultei gmail.com, foi encontrado: static_sts_domain: gmail.com static_upgrade_mode: STRICT Tentei excluir o domínio, mas ainda estou tendo o problema.
paiego 13/12/2015
Esta resposta faz sentido para mim. Meu problema, porém, é que alterei o servidor de nomes de sites do wordpress (wordpress hospedado) para o meu servidor (auto-hospedado) e agora estou conseguindo isso e, provavelmente, todos os visitantes do Chrome. Alguma idéia de como contornar isso para os visitantes sem que eles excluam seu cache?
TomC 27/09/16
2
Basicamente, a única resposta é usar o HTTPS daqui para frente ou esperar que os usuários não o tenham em cache. HTTPS é o caminho a seguir e livre de LetsEncrypt. Você também deve verificar se alguém pré-carregou seu site nos códigos dos navegadores, mas acho que não, se você pode redefini-lo. Não está ciente do Wordpress adicionando automaticamente HSTS, então, pergunte-se como isso aconteceu lá.
Barry Pollard
Obrigado @BazzaDP - não consigo ver uma maneira de contornar isso. Talvez eu precise alterar os servidores de nomes novamente, descobrir o que no site antigo estava forçando o HTTPS e tentar migrar novamente. Você não pode simplesmente FTP a partir de Wordpress blogs hospedados para o novo site que é por isso que este é um problema para mim e para o novo proprietário do site não tem um certificado SSL (embora seriamente pensando em adquirir um de qualquer maneira)
Tomc
2
Como mencionei na minha resposta, as entradas pré-carregadas (ou STS estáticas) não podem ser excluídas, pois existem no código do Chrome e não em uma lista mantida localmente. E, de acordo com a minha última linha na minha resposta, o Google decidiu pré-carregar todo o domínio do desenvolvedor.
Barry Pollard
19

Eu tive esse problema com sites em execução no XAMPP com nomes de host privados. Não é tão particular, ao que parece! Eles eram todos domain.dev, que o Google agora registrou como um gTLD privado e está forçando o HSTS no nível do domínio. Mudou todo host virtual para .devel(eugh), reiniciou o Apache e agora está tudo bem.

codinghands
fonte
Posso confirmar esse problema com o Opera 50.0.2762.9 e que alternar meu domínio de desenvolvimento de .devpara .develcontornar a restrição.
Courtney Miles
5
O RFC 2606 reserva alguns domínios de nível superior especificamente para evitar conflitos com testes particulares. Parece que .testtalvez seja o mais correto para mudar para ambientes de desenvolvimento.
Courtney Miles
Isso fez literalmente salvar minha vida depois de dias de ser incapaz de descobrir o porquê cromo estava agindo como que no meu .devdomínio localhost ... Deus, que saberia ...
D. Petrov
Bem, na verdade .test é recomendado apenas para uso em testes de código atual ou novo relacionado ao DNS.
Alex12:
Isso aqui resolveu meu problema. Estou usando o Laragon para o meu ambiente de desenvolvimento.
Craig
12

Recentemente, tive o mesmo problema ao tentar domínios de acesso usando CloudFlare Origem CA .

A única maneira de encontrar uma solução alternativa / evitar a exceção do certificado HSTS no Chrome (compilação do Windows) foi seguir as breves instruções em https://support.opendns.com/entries/66657664 .

A solução alternativa:
adicione ao sinalizador o atalho do Chrome --ignore-certificate-errors, reabra-o e navegue no seu site.

Lembrete:
use-o apenas para fins de desenvolvimento.

insira a descrição da imagem aqui

Binyamin
fonte
Talvez tente no Google Canary construção google.com/chrome/browser/canary.html
Binyamin
Suponha que você não tenha um site que cause um erro de certificação. Então, como você verificaria se sua solução funciona? Não ajuda aqui - stackoverflow.com/questions/41902367/…
MasterJoe2 27/17
E as versões para mac?
O Java Guy
3

Foi encontrado um erro semelhante. redefinir chrome: // net-internals / # hsts não funcionou para mim. A questão era que o relógio da minha vm estava distorcido por dias. redefinir o tempo funcionou para resolver esse problema. https://support.google.com/chrome/answer/4454607?hl=en

psglinux
fonte
2

Encontro o mesmo erro e o modo de navegação anônima também tem o mesmo problema. Eu resolvo esse problema limpando o histórico do Chrome.

Wangf
fonte
2

Eu sofro desse problema há muito tempo. Não consegui abrir sites como o GitHub. Eu quase tentei todas as respostas na web e ninguém trabalhou. Tentei reinstalar o chrome também. Eu encontrei a solução para isso do nosso cara de rede e funcionou. Há uma correção no registro que resolverá esse erro permanentemente.

  1. Pressione a tecla Windows + R para abrir a caixa de diálogo Executar
  2. digite: regedit e pressione enter para abrir o registro
  3. Na visualização em árvore à esquerda, clique no seguinte caminho HKEY_LOCAL_MACHINE> SOFTWARE> POLICIES> Microsoft> SystemCertificate> Authroot
  4. Agora clique duas vezes em DisableRootAutoUpdate à direita e defina-o como 0 (zero) na caixa de diálogo que aparece
  5. Reinicie o seu PC para aplicar alterações no registro e você não receberá mais este erro

A solução acima é para o Windows 8. É quase idêntica em versões posteriores, mas não tenho certeza para versões anteriores como XP e Vista. Então, isso precisa ser verificado.

Maulik Modi
fonte
Você sabe o que essa opção significa?
precisa saber é o seguinte
@ testerjoe2: Não senhor
Maulik Modi
1
Sofria deste google-analytics.com, juntamente com vários outros domínios do google. Esta resposta resolveu meu problema.
Shawn
O artigo em support.microsoft.com/en-us/help/2813430/… explica o comportamento das chaves que foram introduzidas em um patch para o Windows Vista. Definir esse valor específico como 0 faz com que os certificados raiz atualizados sejam buscados automaticamente no Windows Update e instalados no armazenamento Autoridades de Certificação Raiz Confiáveis. Em um ambiente corporativo, isso pode ser desativado como uma medida de segurança; no entanto, isso significa que alguém deve gerenciar autoridades de certificação raiz confiáveis ​​no nível da empresa.
JamieSee