technical

Ativar HSTS

O MetricSpot verifica o cabeçalho Strict-Transport-Security. O HSTS força os browsers a usar HTTPS em todas as visitas, fechando uma janela de ataques de downgrade que o HTTPS simples deixa aberta.

O que esta verificação faz

Inspeciona os cabeçalhos da resposta HTTP à procura de Strict-Transport-Security (HSTS). A diretiva diz a qualquer browser para recusar ligações em HTTP simples ao teu domínio durante o tempo de max-age.

Porque é importante

Mesmo com HTTPS ativo, o primeiro pedido que um novo visitante faz costuma ser em texto simples — escreve teudominio.com e o browser tenta HTTP. Esse primeiro pedido é uma janela para ataques de downgrade (man-in-the-middle estilo sslstrip em Wi-Fi hostil).

O HSTS fecha essa janela. Assim que um browser vê um cabeçalho HSTS válido, reescreve automaticamente todos os pedidos futuros para HTTPS durante todo o max-age, ignorando URLs http:// escritos pelo utilizador.

Como corrigir

Envia o cabeçalho em todas as respostas HTTPS. Um valor seguro para produção:

Strict-Transport-Security: max-age=31536000; includeSubDomains

nginx:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Apache:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Cloudflare: SSL/TLS → Edge Certificates → HTTP Strict Transport Security (HSTS) → ativar, definir max-age para 12 meses, ativar Include subdomains.

Quando estiveres confiante, adiciona ; preload e submete à lista preload do Chrome — vê a página HSTS preload para os pré-requisitos.

Perguntas frequentes

Que max-age devo usar?

Começa com max-age=300 (5 minutos) enquanto testas, depois escala para 31536000 (um ano). A preload de HSTS exige pelo menos um ano.

O HSTS deixa-me sem acesso se o HTTPS partir?

Sim — é precisamente esse o objetivo. Se o teu certificado expirar ou se a configuração TLS partir, os utilizadores que já visitaram o teu site não conseguem chegar lá por HTTP como fallback. Renova certificados de forma fiável (Let’s Encrypt + systemd timer) e monitoriza a validade.

E se não tiver controlo sobre os subdomínios?

Tira o includeSubDomains. A verificação continua a passar apenas com max-age definido, embora percas proteção para *.teudominio.com. Não podes fazer preload sem includeSubDomains.

Fontes

Última atualização 2026-05-11