Google Chrome redirecionando localhost para https

362

Quando depuro um projeto do Visual Studio usando o Chrome, o navegador tenta redirecionar para o equivalente https do meu endereço da web. Não tenho o SSL ativado no projeto web e o URL inicial é o URL http. Quando depuro usando o FireFox ou o IE, não tenho esse problema.

Reinstalei o Chrome, que corrigiu o problema por um dia. Sem baixar nenhum complemento, o problema aconteceu novamente no dia seguinte.

O que está fazendo o Chrome redirecionar o host local para https?

Network Inspect Shows: URL da solicitação: data: text / html, chromewebdata Cabeçalhos de solicitação Cabeçalhos provisórios são mostrados Agente do Usuário: Mozilla / 5.0 (Windows NT 6.3; WOW64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 36.0.1985.143 Safari / 537,36

Sem visualização e sem dados de resposta nessas guias.

Brett Mathe
fonte
o que o Network Inspector está mostrando?
C69
4
A inspeção de rede não mostra muito. Não consigo nem ver o URL sendo solicitado. URL da solicitação: data: text / html, chromewebdata Cabeçalhos de solicitação São exibidos cabeçalhos provisórios Controle de cache: sem cache Pragma: sem cache Agente do Usuário: Mozilla / 5.0 (Windows NT 6.3; WOW64) AppleWebKit / 537.36 (KHTML, como Gecko ) Chrome / 36.0.1985.143 Safari / 537.36
Brett Mathe
CHROME 63: manter a rolagem de respostas
NorthAmerican
Apenas reinstalando o meu chrome resolve todos os problemas .. agora meu .dev e não redirecionando para https mais. Eu gostaria de ter tentado isso antes .. desperdiçado tanto tempo ..
Taj Khan
10
Qualquer pessoa com esse problema recentemente, se você estiver tentando usar .devcomo doman local, é uma questão totalmente nova, então eu acho que nenhuma dessas respostas funcionará mais. No Chrome 63 ... "Chrome para forçar domínios .dev para HTTPS via HSTS pré-carregado". Portanto, não há mais certificados SSL autoassinados. Aparentemente, o .dev é um domínio real. Quem sabia.
Trevor

Respostas:

592

Acredito que isso seja causado pelo HSTS - consulte http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security

Se você possui (desenvolveu) outros sites de host local que enviam um cabeçalho HSTS ...

por exemplo. Segurança de transporte estrita: max-age = 31536000; includeSubDomains; pré-carga

... então, dependendo do valor da idade máxima, solicitações futuras para o host local deverão ser atendidas por HTTPS.

Para contornar isso, fiz o seguinte.

  • Na barra de endereço do Chrome, digite "chrome: // net-internals / # hsts"
  • Na parte inferior de uma página está a caixa de texto QUERY domain - verifique se o host local é conhecido pelo navegador. Se aparecer "Não encontrado", esta não é a resposta que você está procurando.
  • Se for, DELETE o domínio localhost usando a caixa de texto acima
  • Seu site agora deve funcionar usando HTTP simples e antigo

Esta não é uma solução permanente, mas pelo menos a fará funcionar entre projetos. Se alguém souber excluir permanentemente localhost da lista HSTS, informe-me :)

ATUALIZAÇÃO - novembro de 2017

O Chrome mudou recentemente esta configuração para Excluir políticas de segurança de domínio

insira a descrição da imagem aqui

ATUALIZAÇÃO - dezembro de 2017 Se você estiver usando o domínio .dev, veja outras respostas abaixo, pois o Chrome (e outros) forçam o HTTPS via HSTS pré-carregado.

BigJump
fonte
6
Tão frustrante. Mas tão feliz por ter encontrado a causa.
Zapnologica
21
Tentei consulta para "localhost", mas ele diz que não encontrou
Chin
2
Eu sei que este é um post antigo, mas alguma idéia de como resolver se, ao consultar o host local conforme a resposta aceita, ele retorna 'não encontrado'? Tentei de tudo em todos os comentários e respostas aqui.
DarkW1nter
28
Isso é lixo total do Chrome. Como eles esperam que nós desenvolvamos localmente, quando eles simplesmente começam a forçar arbitrariamente você a HTTPS no seu maldito host local? Eu tenho usado tudo muito bem por meses, eu entro uma manhã e consigo lidar com essa porcaria. Nenhuma dessas "correções" está funcionando para mim.
Alison
50
Se o domínio do host local estiver .dev , acredito que isso não esteja funcionando no @Alison, porque no recente lançamento da v.63 ... "Chrome para forçar domínios .dev para HTTPS via HSTS pré-carregado". Como tal, o .dev basicamente não funcionará mais, a menos que você tenha um certificado SSL assinado apropriado. Não são mais permitidos certificados autoassinados. Mais detalhes .
Trevor
308

Experimentei o mesmo problema no Chrome e tentei sem sucesso usar a solução do BigJump .

Corrigi o meu problema forçando uma atualização, conforme mostrado neste blog (originalmente desta resposta do SuperUser ).

Verifique se a barra de endereço está usando o esquema http e siga estas etapas, possivelmente algumas vezes:

  1. Abra o painel Ferramentas do desenvolvedor (CTRL + SHIFT + I)
  2. Clique e segure o ícone recarregar / Clique com o botão direito do mouse no ícone recarregar.
  3. Um menu será aberto.
  4. Escolha a terceira opção neste menu ("Cache vazio e recarga forçada")
Adiyat Mubarak
fonte
3
Você também pode clicar com o botão direito sobre a atualização / recarregar ícone para chegar ao disco Reload do menu
avjaarsveld
3
Não consigo fazer essa solução funcionar. O problema é que ele faz uma recarga dura no localhost: 3000 (no meu caso). Tentativa de alterar o protocolo antes da recarga, mas isso não funciona.
precisa saber é o seguinte
11
Obrigado!!! Isso restaura o localhost: port original, se você alterou o arquivo startup.cs com este ... var options = new RewriteOptions (). AddRedirectToHttpsPermanent (); app.UseRewriter (opções); }
hubert17 15/04/19
Trabalhou para mim pressionando "CTRL + SHIFT + R" para uma recarga forçada.
LP. Gonçalves
No cromo, é F12 e não CTRL + SHIFT + I
Champ
190

NOVOS DESENVOLVIMENTOS! (se você possui o Chrome 63 ou superior)

Se o domínio do host local for .dev, não acho que as respostas aceitas e funcionais anteriormente não sejam mais aplicáveis. Isso ocorre porque, no Chrome 63, o Chrome forçará domínios .dev para HTTPS via HSTS pré-carregado.

O que isso significa é que .devbasicamente não funcionará mais, a menos que você tenha o certificado SSL assinado correto - não são mais permitidos certificados autoassinados! Saiba mais nesta postagem do blog.

Portanto, para corrigir esse problema agora e evitar que isso aconteça novamente no futuro, .testé um domínio recomendado, pois é reservado pelo IETF para fins de teste / desenvolvimento. Você também deve poder usar o desenvolvedor .localhostlocal.

Trevor
fonte
2
Alterei todos os domínios .dev para .app, ainda o mesmo problema. Alguma dica sobre qual pode ser o problema?
Jeff
5
@Jeff tente usar.test
Vitalii Zurian
18
Isso é EXTREMAMENTE irritante. Certamente deve haver alguma maneira de não nos forçar a mudar nosso domínio de desenvolvimento, certo?
Emanuele Ciriachi
5
substituindo .devpor .testfuncionou para mim também no Chrome 63
Lekhnath 21/17/17
12
Esses padrões contra-intuitivos são terríveis. Por que perder tempo depurando a configuração do ambiente de desenvolvimento ou apenas adivinhando o que está acontecendo de errado, apenas para descobrir que tudo está bem do seu lado e é o Google Chrome que redireciona .dev para HTTPS por padrão. Onde está a lógica? Por que .dev e por que não outros TLDs? Absolutamente não intuitivo.
Meglio 25/12
50

Pegando carona em Adiyat Mubarak

Não foi possível atualizar com força, pois estava apenas atualizando em https. Segue alguns dos mesmos passos.

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
fonte
Estou aqui pela segunda vez pela solução. Muito Obrigado.
camo
11
Estou usando um domínio local e isso funcionou quando a solução HSTS acima não.
precisa saber é o seguinte
Essa é a única coisa que funcionou para mim depois de tentar as soluções da BigJump e Adiyat Mubarak.
Alek Arsovski 31/08
Desabilitar o cache também era necessário para mim. Esse problema começou a ocorrer depois de desligar o Fiddler.
CounterFlame 28/02/19
47

Estou enfrentando o mesmo problema, mas apenas no Chrome Canary e procurando uma solução que encontrei neste post .

uma das próximas versões do Chrome forçará todos os domínios terminados em .dev (e .foo) a serem redirecionados para HTTPs por meio de um cabeçalho HSTS (HTTP Strict Transport Security) pré-carregado.

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

Então, mude seus domínios.

rafawhs
fonte
2
este é o problema que vim aqui para resolver. homem Agora eu tenho que vir para cima com um falso TLD diferente para os meus sites dev locais ...
Matt lohkamp
2
No wiki , .localparece meio frágil, embora eu acho que é mais seguro do que outros TLDs. Também estou retirando o uso do .localhostcoz, parece que o chrome faz algum redirecionamento nativo, o que parece impedir o funcionamento do meu rproxy. .testparece mais segura, embora desajeitado devido aos conflitos de namespace com todas aquelas cordas usadas em TDD / .test()métodos etc
Dwelle
8
Perdeu um dia com isso. Muito obrigado
Tonio
17
caramba, acabei de atualizar para o Chrome 63 e agora isso está me afetando no .dev. WTF. Não me importo se é um TLD válido ou não, se não preciso, não quero ou não tenho meu site usando SSL, então não o force.
dbinott
6
Uau, isso me irrita. Para alguns ambientes de desenvolvimento, não é tão simples quanto mudar o tld. Estou olhando horas de trabalho agora para mudar isso para o que estou trabalhando. Não é realmente o negócio deles que quero usar para desenvolver.
Brett Thomas
18

O Chrome 63 (lançado desde dezembro de 2017) forçará todos os domínios que terminam em .dev (e .foo) a serem redirecionados para HTTPS por meio de um cabeçalho HTTP Strict Transport Security (HSTS) pré-carregado. Você pode encontrar mais informações sobre isso aqui.

Tai Ho
fonte
2
^^ O mesmo. Também afetou nossos .appdomínios na última semana. Estamos mudando temporariamente para, .testembora eu não ache que seja uma solução a longo prazo.
russellmania
13

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

Nenhuma das correções de opção funcionou para mim, para corrigir https://localhost:3000 , isso funcionou.

clique e segure o Reloadbotão e selecione Empty Cache and Hard Reload, isso parece ser apenas uma opção nolocalhost

user2167582
fonte
isso não está funcionando no meu fim. existe alguma outra solução?
Raju Paladiya
O Chrome mais recente foi atualizado para que esta solução não funcione mais.
user2167582
11
Isso deve funcionar em todos os domínios, se você tiver a barra de ferramentas do desenvolvedor aberta
Hussam
7

Eu também tenho lutado com esse problema. Parece que o HSTS se destina apenas a nomes de domínio . Portanto, se você estiver desenvolvendo em uma máquina local, é muito mais fácil usar o endereço IP. Então mudei de localhost para 127.0.0.1

siim
fonte
Tudo bem, mas é possível garantir que cada vez que você digita localhost, ele substitui as palavras localhost por 127.0.0.1?
11119 Simon
Muito obrigado
hedha
6

Eu nunca descobri a raiz do problema, mas fui capaz de corrigi-lo. Excluí a pasta de cache do aplicativo Google Chrome que resolveu o problema.

C: \ Usuários [usuários] \ AppData \ Local \ Google \ Chrome

Brett Mathe
fonte
11
Você perdeu todo o histórico ou senhas do navegador?
Zapnologica
7
Acredito que o problema é que o Chrome armazena quando você visita um domínio usando HTTPS e, se você visitar o mesmo domínio novamente, ele mudará automaticamente para HTTPS. É um pé no saco como desenvolvedor, porque depois que você acessa qualquer site de host local usando HTTPS, de repente todos os sites de locahost são redirecionados para HTTPS.
Dale K
11
@DaleBurrell Você não está certo. Isso é causado pelo HSTS: en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
langpavel
6

Isso pode ser causado por um redirecionamento https em cache e pode ser corrigido limpando o cache manualmente, como na resposta de Adiyat Mubarak.

Mas se você estiver visitando o host local, provavelmente é um desenvolvedor. Nesse caso, você encontrará uma extensão do Chrome para limpeza de cache, como "killer de cache clássico" (consulte, por exemplo, https://chrome.google.com/webstore/search/classic%20cache % 20killer? Hl = pt ) útil em várias situações e provavelmente já possui um instalado.

Portanto, a solução rápida é: instale um killer de cache (se você ainda não o possui), ligue-o e recarregue a página. Feito!

CalderBot
fonte
Corrigido o problema
makdu
6

Uma solução preguiçosa e rápida para pessoas preguiçosas como eu (trabalhando no Chrome 67).

Basta iniciar outra janela do Chrome no modo furtivo , com a opção "Janela anônima" (CTRL + SHIFT + N). Não é necessário excluir o cache, não é necessário mergulhar nas configurações profundas do Chrome, etc.

spekdrum
fonte
11
Eu tive problemas com as outras sugestões - possivelmente porque eu precisava ter várias páginas da web abertas ao mesmo tempo, todas no mesmo domínio, mas em servidores diferentes, algumas delas usando https, outras http simples. Sobre nada mais funciona além da "Janela Incógnita"!
Klaws
Isso funciona, mas torna minhas solicitações AJAX extremamente lentas por causa de cabeçalhos provisórios.
Twigs
5

Nada disso funcionou para mim. Começou a acontecer após uma atualização do chrome (Versão 63.0.3239.84, linux) com um URL local. Sempre redirecionaria para https, não importa o quê. Perdi algumas horas e muita paciência com isso

Afinal, o que funcionou foi apenas mudar o domínio.

Pelo que vale, o domínio foi .app. Talvez tenha algo a ver? E apenas mudei para .test e o chrome parou de redirecioná-lo

diogo.abdalla
fonte
5

Como eu resolvi esse problema com o chrome 79:

Basta colar este URL na pesquisa input chrome: // flags / # allow-insecure-localhost

Isso me ajudou usando recursos experimentais.

Ivan Efremov
fonte
3

Infelizmente, nenhuma das soluções listadas aqui me ajudou a resolver esse problema. Corrigi esse problema usando http://127.0.0.1 (endereço IP) em vez de http: // localhost . Um pequeno truque rápido para trabalhar com desenvolvimento angular com o navegador Chrome.

Venkatesh Muniyandi
fonte
1

No meu caso, eu tinha o caminho do meu projeto definido como /Users/me/dev/project_root/e estava executando o nodeJS/ expressserver a partir daí. Renomear meu caminho para /Users/me/project_root(removendo devdo caminho para o projeto) resolveu o problema.

Muito provavelmente tem a ver com este novo regulamento:

O Chrome 63 (lançado desde dezembro de 2017) forçará todos os domínios que terminam em .dev (e .foo) a serem redirecionados para HTTPS por meio de um cabeçalho HTTP Strict Transport Security (HSTS) pré-carregado.

Você pode encontrar mais informações sobre isso aqui .

Usando:

  • Google Chrome versão 70.0.3538.110 (versão oficial) (64 bits)
  • nodeJS v9.2.0
Kobbi Gal
fonte
1

Uma solução simples para isso é editar seu /etc/hostsarquivo e estabelecer um alias por projeto.

127.0.0.1   project1 project2 project3

Esses nomes sem domínio nunca terão problemas com o HSTS, a menos que você envie a resposta do HSTS mencionada por @bigjump e com o benefício adicional de manter sua sessão de logon se você alternar entre os projetos.

boatcoder
fonte
0

Vá para configurações no Chrome e, em seguida, para Configurações avançadas, na seção privacidade e segurança, clique em Limpar dados de navegação e, em seguida, limpe todos os dados. Eu segui esses passos e funcionou para mim. Espero que ajude alguém.

user9143776
fonte
0

O Chrome 63 força domínios .dev automáticos para HTTPS via HSTS pré-carregado.
Solução rápida: basta alterar os domínios .dev para .localhost.

Wouter Schoofs
fonte
0

Esta não é uma solução, é apenas uma solução alternativa.

  1. Clique no seu projeto do visual studio (nível superior) no Solution Explorer e vá para a janela de propriedades.

  2. Alterar SSL ativado para true. Agora você verá outro número de porta como 'SSL SSL' na janela de propriedades.

  3. Agora, quando você executa o aplicativo (ou visualiza no navegador), é necessário alterar manualmente o número da porta para o número da porta SSL na barra de endereços.

Agora funciona bem como um link SSL

Arunabh Mukherjee
fonte
0

Abra Chrome Developer Tools-> vá para Network-> selecione Disable Cache-> recarregar

Ben Bieler
fonte
-1

Para alguém que teve o mesmo problema, resolvi pressionando CTRL + SHIFT + DELETE para excluir apenas o cache inteiro do navegador. Agora posso acessar meu site localhost no protocolo HTTP.

Renan Coelho
fonte
-2

A resposta do @Adiyat Mubarak não funcionou para mim. Quando tentei limpar o cache e recarregar com força, a página ainda é redirecionada para https.

Minha solução: no canto superior direito da barra de URL (logo à esquerda do ícone de estrela dos favoritos), existe um ícone com um "x". Clique com o botão direito do mouse e ele dirá algo sobre "scripts não seguros"; existe a opção de carregá-los de qualquer maneira. Faça isso.

cph2117
fonte
Você sabe qual é o nome dessa opção ou onde mais a encontra? Não vejo o atalho na minha barra de URL.
Carolyn Conway
@CarolynConway Não tenho certeza do que se chama. É possível que ele apareça apenas para o meu problema específico.
cph2117
-2

Outra opção seria usar algo como https://github.com/rchampourlier/tunnelss

Claro que acrescentou outra dependência / configuração, mas também permite testar o https no dev, o que pode ser bom.

No entanto, eu uso o RVM para obter túneis funcionando, eu tive que usar sudo gem install tunnelssesudo tunnelss

Mr ISH
fonte
-4

Essa é a solução mais rápida hoje (17-3-2018):

Feche todas as guias / janelas do Chrome e execute na linha de comando o seguinte: (ou adicione-o como um código de acesso)

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