Por que o Chrome está forçando o SSL quando tento acessar meu domínio?

1

Eu tenho um problema estranho e uma pilha de sintomas dos quais não consigo entender.

Eu tenho um domínio .com que aponta para meu endereço IP residencial. Dentro da minha LAN, eu uso a resolução de DNS externo, por isso, se eu executar um nslookup internamente, recebo meu IP externo em vez do IP da LAN.

Veja o que acontece:

  • Quando estou em casa (em um dispositivo que tem um IP interno, digamos 10.0.0.20)
  • E estou executando o Chrome para Windows (executando o Google Chrome 35 atm)
  • E eu tento acessar um recurso usando meu nome de domínio externo via HTTP (por exemplo, link )

... o Chrome converte imediatamente o protocolo para https (na barra de endereço) e reclama de um erro SSL. Não consigo alcançar o alvo.

Funciona como esperado se eu usar a mesma compilação do Chrome em uma máquina externa (por exemplo, o mesmo perfil de usuário no meu PC no escritório). Ele também funciona localmente usando o Internet Explorer e o Firefox. É apenas um problema com o Chrome internamente. Eu posso reproduzir isso em duas máquinas diferentes, uma rodando o Windows 8.1 e outra com o Windows 7, e posso reproduzi-la tanto em wi-fi quanto em cabo.

Meu servidor doméstico executa o Windows Server Essentials 2012 e eu tenho um domínio interno, mas não acho que o servidor esteja envolvido no meu problema.

Configurei meu roteador para encaminhar a porta 1880 para um dispositivo Raspberry Pi, onde tenho um servidor http escutando. Fora do Chrome, posso acessar o link e ele será resolvido com perfeição. Quando eu tento no Chrome, ele instantaneamente converte para https e falha (porque o RPi não está aceitando conexões SSL). Quando uso o IP da LAN no Chrome, também funciona.

O roteador está executando o firmware Tomato.

O que está acontecendo aqui?

  • Não pode ser uma configuração / bug flagrante do Chrome, porque o mesmo perfil / versão do Google Chrome funciona quando estou fora da LAN.
  • Não pode ser uma configuração de PC local, porque o IE e o Firefox funcionam bem.
  • Não pode ser meu Windows Server, porque o próprio roteador está manipulando o encaminhamento de porta.
  • Não pode ser o roteador, porque o IE e o Firefox funcionam bem.

Estou sem ideias - claramente uma das suposições acima está incorreta. O Chrome possui um código de rede mais sofisticado que está causando um comportamento inesperado na minha situação? Posso ter algum tipo de problema de loopback que o IE / FF esteja manipulando normalmente?

Eu fiquei sem ideias. Se alguém tiver uma sugestão de onde investigar, eu agradeceria.

Atualização: outro dado - o Chrome (usando o mesmo perfil de usuário) se comporta corretamente quando executado em uma VM do Hyper-V hospedada em uma máquina afetada.

Atualização 2: esse comportamento desaparece quando eu crio um novo perfil de usuário do Chrome. No momento em que eu registro esse perfil em minha conta do Google, no entanto, o problema retorna. Parece ser "algo no perfil do usuário do Google Chrome" vinculado à minha conta do Google.

    
por Stefan Mohr 06.06.2014 / 20:37

1 resposta

4

Não é uma certeza por qualquer meio, mas aqui está um palpite:

O Google Chrome (junto com outros navegadores modernos) suporta o cabeçalho HTTP Strict-Transport-Security , que informa o navegador que "este site deve ser acessado apenas via HTTPS, então, no futuro, mesmo que o usuário solicite HTTP, dê-lhe HTTPS." À medida que o uso de HTTPS se torna cada vez mais comum, o envio desse cabeçalho está se tornando padrão em novos softwares e estruturas, como geralmente se o HTTPS estiver configurado (o que precisa ser para o cabeçalho Strict-Transport-Security ter algum efeito) , é preferível usá-lo para tudo. A sua experiência leva-me a pensar que, em algum momento, tentou aceder a uma página no Chrome no seu domínio através de HTTPS e que a aplicação utilizada enviou esse cabeçalho. Por isso, o Chrome nas máquinas afetadas o contém em sua lista Strict-Transport-Security, por isso não permitirá ir para páginas não HTTPS nesse domínio.

Você não menciona nunca tentar fazer nada nesse domínio nunca via HTTPS, mas há uma chance que você fez em algum momento e foi aí que seu problema começou? (O cenário ainda menos provável é que seu domínio esteja no Lista HSTS compilada no pré-carregamento sem que você saiba.) Não encontrei uma maneira de visualizar a lista de Segurança de Transporte Estrito do Chrome, por isso não sei como validar que esse é o problema, mas todos "O Chrome quer usar HTTPS e não sei por que" problemas que eu vi acabaram sendo que em algum momento o domínio era sobre HTTPS e usava o cabeçalho Strict-Transport-Security, então essa é a hipótese que eu suporia para agora, a menos que exista algo mais que possa acionar o comportamento no Chrome.

Espero que ajude.

    
por 09.06.2015 / 19:48