HSTS explicado: forçar o https para sempre, e a armadilha de o ligar cedo demais

A resposta curta: o HSTS é uma instrução que o seu site dá ao navegador: «de agora em diante, fala comigo só por https, durante X tempo, nem tentes http». Fecha o buraco que o simples redirecionamento deixa aberto. Mas o navegador obedece mesmo que se arrependa, e é por isso que só se liga quando o https está perfeito em todo o lado.

O que o HSTS resolve que o redirecionamento não resolve

Com um redirecionamento de http para https (veja como redirecionar de HTTP para HTTPS), a primeira visita de alguém que escreveu o endereço sem https passa por http, e é aí, numa rede Wi-Fi alheia, que um intruso pode interferir antes do redirecionamento. Com HSTS, depois da primeira visita o navegador já nem tenta http: vai direto a https.

Antes de ligar, confirme isto

Condição Porquê
O https funciona em todas as páginas, sem aviso nem conteúdo misto Com o HSTS ligado, o navegador deixa de oferecer o botão «continuar mesmo assim». Veja conteúdo misto.
O certificado renova-se sozinho Um certificado caducado com HSTS é um muro, não um aviso. Veja quando o certificado não renova.
Os subdomínios também têm https Se usar a opção que inclui subdomínios, um subdomínio antigo sem certificado fica inacessível.
Não está atrás de um serviço com outra regra de SSL Se usa o Cloudflare, o modo de SSL e o HSTS lá têm de estar certos antes: ligar o SSL no Cloudflare sem estragar o site.

Como ligar, com cuidado

1 Comece com um prazo curto. No ficheiro .htaccess da raiz do site, acrescente Header always set Strict-Transport-Security "max-age=300". Isto são cinco minutos: se algo correr mal, o navegador esquece depressa.
2 Navegue o site todo, com sessão iniciada e sem ela, em janela privada. Procure avisos e páginas que não abram.
3 Aumente por etapas: um dia, uma semana, e finalmente o valor habitual de um ano (31536000 segundos). Em cada etapa, espere e observe.
4 Deixe a opção de subdomínios e a lista de pré-carregamento para o fim, e só se tiver a certeza absoluta. A lista de pré-carregamento (preload) põe o seu domínio dentro dos próprios navegadores, e sair dela leva meses.
Não há botão de desfazer. Se pôr o HSTS durante um ano e depois descobrir que um subdomínio não tem https, os visitantes que já o receberam ficam sem aceder a esse subdomínio até o prazo acabar, mesmo que corrija tudo do seu lado. É por isso que o primeiro valor é de cinco minutos e não de um ano.
O HSTS só se aplica depois do primeiro acesso por https e só no navegador que o recebeu. É uma proteção em camada, a juntar a um redirecionamento e a um certificado a funcionar, não um substituto. Os outros cabeçalhos de segurança estão em cabeçalhos de segurança explicados.

Não tem a certeza de que o https está perfeito em todo o site e subdomínios? Peça-nos para verificar antes de ligar o HSTS.

Abrir pedido de suporte

VEJA TAMBÉM

Como redirecionar de HTTP para HTTPS com o .htaccess

Conteúdo misto depois de passar a HTTPS

Cabeçalhos de segurança explicados

Certificados SSL

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde $6.60/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?