Desde a versão 63 do navegador web Chrome (lançado em dezembro de 2017), o mesmo força 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.

A partir de julho de 2018 o Firefox também iniciou este redirecionamento forçado aos domínios .DEV para HTTPS.

Este é um assunto pertinente quando se desenvolve em ambientes locais também com Docker Laradock.

.DEV é um gTLD legítimo

Ele foi comprado pelo Google como um de seus mais de 100 novos gTLDs nesta época.

O gTLD .dev tem servidores de nomes e é basicamente como qualquer outro TLD lá fora. Nós, como desenvolvedores, escolhemos esse nome como um bom substituto para o desenvolvimento local também, sobrescrevendo o DNS público.

Consequências do redirecionamento de .dev para HTTPS

Muitos desenvolvedores (da Web) usavam um TLD .dev local para seu próprio desenvolvimento. Ou adicionando registros ao arquivo /etc/hosts ou usando um sistema como o Laravel Valet, que executa um serviço dnsmasq em seu sistema para traduzir *.dev para 127.0.0.1.

Nesses casos, se você navegar para http://site.dev, será redirecionado para https://site.dev, a variante HTTPS.

Isso significa que sua máquina de desenvolvimento local precisa:

  • Ser capaz de servir o protocolo HTTPs
  • Tenha certificados autoassinados para lidar com esta situação
  • Adicionar esse certificado autoassinado ao seu armazenamento de confiança local (você não pode descartar certificados autoassinados com HSTS, eles precisam ser “confiáveis” por seu computador)

Como estas são complexidades, de certa forma, desnecessárias para o desenvolvimento e configuração de seu ambiente local, sugiro uma alternativa simples.

Como resolver

Como .dev é um gTLD oficial, provavelmente é melhor mudar o sufixo de desenvolvimento local preferido de .dev para outro.

Se você estiver procurando por uma alternativa rápida de “busca e substituição” para configurações existentes, considere o gTLD .test, que é um nome reservado pela IETF para fins de teste (ou desenvolvimento).

Também há uma excelente proposta para adicionar o domínio .localhost como um novo padrão, o que seria mais apropriado aqui. Significaria que não temos mais site.dev, mas site.localhost.

E tudo em *.localhost seria automaticamente traduzido para 127.0.0.1, sem /etc/hosts ou soluções alternativas dnsmasq.