Segurança e SSL

Ativar o HSTS de forma gradual

Revisto a 3 min de leitura HSTS HTTPS

O HSTS indica ao navegador que, durante o tempo configurado, deve voltar a esse nome apenas através de HTTPS. O navegador aprende-o ao receber o cabeçalho por uma ligação HTTPS válida; o cabeçalho enviado por HTTP é ignorado.

Não o ative só para passar numa auditoria. Antes, confirme que:

  • O domínio apresenta um certificado válido e renovável.
  • Todo o site, incluindo o acesso, os pagamentos, as APIs e os recursos, funciona através de HTTPS.
  • Existe um redirecionamento estável de HTTP para HTTPS.
  • Consegue manter o HTTPS durante todo o max-age, porque os visitantes não poderão ignorar uma falha posterior.

Depois, pode acrescentar ao ficheiro .htaccess do domínio uma política inicial curta e apenas sobre HTTPS:

<IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=300" "expr=%{HTTPS} == 'on'"
</IfModule>

Teste o site e aumente o valor gradualmente, por exemplo para um dia e depois para vários meses. Não acrescente includeSubDomains até confirmar que todos os subdomínios atuais e futuros funcionarão sempre por HTTPS. Não acrescente preload por predefinição: a sua retirada pode demorar e exige cumprir os requisitos da lista de pré-carregamento.

O HSTS não corrige conteúdo misto, um certificado inválido nem um redirecionamento incorreto. Resolva esses problemas antes de alargar a política.

Verificar e retirar a política

Nas ferramentas de programador do navegador, abra Rede, carregue o URL HTTPS e inspecione os cabeçalhos de resposta do documento. Deve aparecer uma única política Strict-Transport-Security com o valor escolhido. Verifique também páginas que redirecionam ou devolvem um erro. Atrás de um proxy, confirme onde termina o TLS e defina o cabeçalho na camada que conhece de forma fiável o protocolo do visitante; não confie num cabeçalho enviado livremente pelo cliente.

A regra anterior usa expressões do Apache 2.4. Se o servidor não a aceitar ou devolver um erro 500, reponha o .htaccess anterior e consulte-nos antes de adaptar a condição.

Retirar a linha não apaga o que os navegadores já aprenderam. Para retirar uma política normal, sirva max-age=0 por HTTPS válido; os visitantes que não voltem manterão a política até que expire. A política de um domínio superior com includeSubDomains e o pré-carregamento requerem uma revisão separada. Consulte os requisitos e a retirada da lista de pré-carregamento antes de o pedir.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.