O HSTS diz ao navegador para usar só HTTPS no seu site, mas apenas depois de receber o cabeçalho pela primeira vez. A lista de preload HSTS fecha essa brecha: é uma lista de domínios embutida no Chrome, na qual também se baseiam as listas do Firefox, do Safari e do Edge. Assim, esses navegadores usam HTTPS para um domínio da lista e para todos os seus subdomínios antes mesmo de a primeira requisição sair do aparelho.
Entrar na lista é preencher um formulário no hstspreload.org. Sair leva meses. Este guia explica o que é a lista, os requisitos exatos de envio, os riscos que tornam o preload uma decisão praticamente sem volta para a maioria dos sites, um plano de max-age em etapas e como verificar tanto o cabeçalho quanto o status na lista. Todos os exemplos usam example.com.
Resumindo, em 2026: o hstspreload.org recomenda HSTS para todo site com HTTPS, mas deixou de recomendar o preload por padrão. Leia a seção 2 antes de colocar a diretiva preload em qualquer cabeçalho.
Escopo deste guia
Este guia trata do que dá para ver de fora: cabeçalhos públicos, redirecionamentos e a lista pública de preload. O verificador gratuito lê uma única resposta pública, não enxerga subdomínios internos e não é um pentest.
1. O que é a lista de preload HSTS
O HTTP Strict Transport Security é definido na RFC 6797. O servidor envia Strict-Transport-Security: max-age=… por HTTPS, e o navegador guarda por max-age segundos que aquele host só pode ser acessado por HTTPS. Enquanto o navegador do visitante não tiver recebido o cabeçalho ao menos uma vez, nada protege a primeira requisição http:// sem criptografia, e um atacante na mesma rede pode interceptá-la. A RFC descreve essa fraqueza do primeiro acesso e sugere políticas pré-configuradas como uma resposta possível.
A lista de preload é essa resposta na prática. Quem mantém a lista é o projeto Chromium, e as novas entradas são gravadas diretamente no código-fonte do Chrome. Segundo a página de HSTS do projeto Chromium e o hstspreload.org, o Firefox, o Safari e o Edge mantêm listas próprias baseadas na do Chrome. Em qualquer versão do navegador que traga a entrada, um domínio pré-carregado só abre por HTTPS desde a primeira execução; e, como os envios precisam incluir includeSubDomains, o mesmo vale para todos os nomes abaixo dele.
Três detalhes costumam ser mal entendidos:
- A diretiva
preloadnão faz nada no navegador. Ela não faz parte da RFC 6797, e os navegadores ignoram diretivas que não reconhecem. Ela serve para avisar aos mantenedores da lista que o dono do domínio concorda com a inclusão. A partir do momento em que o seu cabeçalho traz essa diretiva, qualquer pessoa pode enviar o seu domínio pelo formulário. - Só entram domínios registráveis inteiros. Você envia
example.com, nãowww.example.comnemloja.example.com, e a entrada cobre todos os subdomínios, inclusive os internos, que nem são acessíveis pela internet. - Alguns domínios de topo são pré-carregados por inteiro. Qualquer domínio em
.appou.dev, por exemplo, já só funciona por HTTPS nos navegadores que usam a lista, tenha o dono enviado algo ou não.
2. Você ainda precisa de preload?
Para a maioria dos sites, provavelmente não. O próprio site de envio diz hoje que o HSTS é recomendado, mas o preload do HSTS não. O Chrome e o Safari tentam HTTPS automaticamente nas navegações que começam com http://, com ou sem política HSTS, e por isso a brecha da primeira visita, que o preload veio fechar, ficou bem menor. Segundo o hstspreload.org, o preload só acrescenta proteção quando esses upgrades automáticos falham por causa de um atacante ativo, e o benefício é mínimo perto do que o próprio HSTS oferece.
Ainda assim, ele pode fazer sentido quando as três condições abaixo valem ao mesmo tempo:
- um downgrade logo na primeira visita importa para você, por exemplo porque as pessoas fazem login ou pagam em redes públicas;
- todos os subdomínios atuais e futuros, incluindo os internos e os hospedados por fornecedores, conseguem servir HTTPS com um certificado válido;
- você pretende manter o domínio, e o HTTPS nele, por anos.
Deixe de lado, ou adie, se equipes ou fornecedores cuidam de subdomínios que você não controla totalmente, se há hosts internos sob o domínio público, se o domínio é de uma campanha passageira ou se você pode vendê-lo ou repassá-lo: a entrada acompanha o domínio até o próximo dono enquanto ninguém pedir a remoção. Um cabeçalho HSTS bem configurado, sem preload, já protege todo visitante que volta.
3. Os requisitos exatos de envio
O hstspreload.org confere estas condições no envio, e você precisa continuar atendendo a elas depois: domínios que deixam de atendê-las podem ser removidos, e tirar preload do cabeçalho deixa o domínio apto ao formulário de remoção na hora.
| Requisito | O que significa na prática | Como verificar |
|---|---|---|
| Certificado válido | O domínio base serve um certificado em que os navegadores confiam, com a cadeia completa | O site abre sem aviso; curl https://example.com/ não acusa erro de certificado |
| HTTP para HTTPS no mesmo host | Se a porta 80 responde, http://example.com/ redireciona primeiro para https://example.com/, e não direto para https://www.example.com/ | curl -sS -D - -o /dev/null http://example.com/ mostra 301 ou 308 e esse Location |
| Todos os subdomínios em HTTPS | Cada subdomínio, incluindo aninhados e internos, funciona por HTTPS; o www precisa de HTTPS se tiver registro DNS | Suas zonas DNS e seu inventário de certificados; o formulário não enxerga nomes internos |
| HSTS no domínio base | Enviado nas respostas HTTPS de https://example.com/, inclusive em qualquer redirecionamento servido ali | curl -sS -D - -o /dev/null https://example.com/ |
| max-age de pelo menos 31536000 | Um ano em segundos; o exemplo do hstspreload.org usa 63072000, dois anos | Leia o número depois de max-age= |
| includeSubDomains | Estende a política a todos os subdomínios | Diretiva presente no cabeçalho |
| preload | Sinaliza que você concorda com a inclusão | Diretiva presente no cabeçalho |
A regra do redirecionamento pega muitos sites. Se https://example.com/ redireciona para https://www.example.com/, é essa resposta de redirecionamento que precisa trazer o cabeçalho completo. O cabeçalho da página www não conta, porque uma política definida por www.example.com nunca vale para o domínio base. Um cabeçalho que passa na verificação fica assim:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload4. Os riscos: por que o preload é difícil de desfazer
- A remoção leva meses. Remover é uma mudança no código-fonte que só chega às pessoas com as atualizações do navegador. A página de remoção informa que pode levar de 6 a 12 semanas para alcançar a maioria dos usuários do Chrome, e talvez mais em outros navegadores. Um navegador que nunca é atualizado mantém a entrada antiga.
- Subdomínios sem HTTPS param de funcionar. Casos típicos: hosts de intranet que só resolvem no DNS interno, painéis de impressoras, roteadores e storages com certificados autoassinados, servidores de homologação esquecidos e serviços de fornecedores apontados por CNAME, como central de ajuda, página de status ou links de rastreamento de cliques em e-mails, que só respondem por HTTP. Num navegador com o seu domínio pré-carregado, eles falham sem nenhuma forma de contornar o erro.
- Erros de certificado viram bloqueio total. Num host com HSTS, a RFC 6797 exige que o navegador encerre a conexão diante de qualquer erro de certificado, sem deixar o visitante prosseguir. Um certificado vencido em qualquer subdomínio bloqueia todo mundo até ser trocado; por isso, automatize a renovação e monitore as datas de vencimento antes de enviar.
- Quem já visitou mantém a política guardada. Sair da lista não apaga o que os navegadores aprenderam com o seu cabeçalho. Com um
max-agede dois anos, essa cópia dura dois anos, a menos que o visitante volte e recebamax-age=0por HTTPS. - Envio acidental. Um cabeçalho copiado de um modelo que já traz
preloadbasta para qualquer pessoa enviar o seu domínio. Deixe a diretiva de fora até concluir o plano da próxima seção.
5. Um plano de max-age em etapas antes do envio
O hstspreload.org recomenda aumentar o max-age em etapas, com includeSubDomains desde a primeira. Em cada etapa, procure páginas quebradas e acompanhe métricas como tráfego, logins e receita, corrija o que aparecer e espere pelo menos o max-age completo da etapa antes de avançar. Dá para passar pelas etapas primeiro com um grupo de teste, mas depois todos os usuários precisam passar por elas.
| Etapa | Valor do cabeçalho | Espere pelo menos | O que observar |
|---|---|---|---|
| 0. Inventário | Nenhuma mudança ainda | Até a lista ficar completa | Todos os subdomínios das zonas DNS, dos pedidos de certificado e dos logs de Certificate Transparency, cada um testado por HTTPS |
| 1. Cinco minutos | max-age=300; includeSubDomains | 5 minutos; alguns dias de tráfego real dizem mais | Erros em subdomínios esquecidos, conteúdo misto |
| 2. Uma semana | max-age=604800; includeSubDomains | 1 semana | Chamados de suporte, erros de login e de pagamento, ferramentas internas |
| 3. Um mês | max-age=2592000; includeSubDomains | 1 mês | Rotinas mensais, links de fornecedores e de e-mail, hosts pouco usados |
| 4. Dois anos | max-age=63072000; includeSubDomains; preload | Depois, envie | Renovação de certificados e cada subdomínio novo, enquanto você estiver na lista |
No nginx, envie o cabeçalho a partir do bloco server de HTTPS com o parâmetro always, para que as páginas de erro também o tragam, e mantenha o redirecionamento HTTP no mesmo host. Uma linha add_header dentro de um bloco location substitui ali os cabeçalhos definidos no nível do server (módulo de cabeçalhos do nginx).
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
# etapa 1: troque o valor a cada etapa
add_header Strict-Transport-Security "max-age=300; includeSubDomains" always;
}Só a subida em etapas leva mais de cinco semanas. Depois do envio, segundo o hstspreload.org, uma entrada nova pode levar vários meses para chegar à versão estável do Chrome; por isso, o preload nunca é uma solução rápida para uma data de lançamento.
6. Como verificar o seu cabeçalho HSTS
No terminal, confira as três respostas que importam:
curl -sS -D - -o /dev/null http://example.com/
curl -sS -D - -o /dev/null https://example.com/
curl -sS -D - -o /dev/null https://www.example.com/A primeira deve retornar 301 ou 308 com Location: https://example.com/; ela não precisa de cabeçalho HSTS, porque os navegadores ignoram HSTS recebido por HTTP sem criptografia. A segunda precisa trazer strict-transport-security com as três diretivas, mesmo que ela própria redirecione para o www. A terceira também deve enviar o cabeçalho, porque quem só abre o www nunca recebe a política do domínio base. No Windows, use curl.exe e -o NUL.
Fique de olho nestes erros:
- Dois cabeçalhos HSTS. Quando a CDN e o servidor de origem adicionam um cada, a RFC 6797 manda o navegador processar só o primeiro, e a verificação do hstspreload.org acusa “Multiple HSTS headers” como erro. Defina qual camada é dona do cabeçalho.
- Uma diretiva com erro de digitação. Os navegadores descartam sem aviso as diretivas que não reconhecem; um
includeSubdomainsem o s final deixa os subdomínios descobertos sem ninguém perceber. - Ausente em algumas respostas. A página inicial tem o cabeçalho, mas as páginas de erro, a API ou os arquivos estáticos servidos por outra camada não têm.
No Chrome DevTools, abra o painel Network e digite http://example.com/ na barra de endereços depois que o navegador já tiver guardado a política. A primeira entrada mostra 307 Internal Redirect com Non-Authoritative-Reason: HSTS: o navegador mudou para HTTPS por conta própria, antes de qualquer requisição chegar ao servidor. A referência do MDN traz a sintaxe do cabeçalho.
7. Como verificar o status na lista de preload
- hstspreload.org. Digite o domínio no formulário. Ele mostra se o domínio está pré-carregado, pendente ou fora da lista, junto com os erros e avisos em relação aos requisitos atuais. Um domínio pendente ainda não está protegido: ele ainda precisa sair numa versão do navegador.
- chrome://net-internals/#hsts. No Chrome, informe o domínio em “Query HSTS/PKP domain”. Os campos que começam com
static_vêm da lista embutida naquela versão do navegador; os que começam comdynamic_vêm dos cabeçalhos que o navegador recebeu. “Delete domain security policies” apaga só a parte dinâmica, então uma entrada pré-carregada continua lá até uma atualização do navegador removê-la. - Outros navegadores. O Firefox, o Safari e o Edge distribuem cópias próprias, derivadas da lista do Chrome, em seus próprios calendários; por isso, uma inclusão ou remoção pode chegar a eles em momentos diferentes.
Repita a verificação depois de mudanças no DNS, na CDN ou nos certificados. O hstspreload.org avisa que domínios que deixarem de atender aos requisitos poderão ser removidos automaticamente no futuro.
8. Como sair da lista: passos e prazos da remoção
- Continue servindo HTTPS com certificado válido no domínio base; o formulário de remoção confere isso.
- Envie um cabeçalho HSTS sem
preload. O hstspreload.org trata esse cabeçalho como o pedido de remoção. MantenhaincludeSubDomainse ummax-agelongo se quiser continuar com HSTS, ou enviemax-age=0para desligá-lo de vez. - Envie o domínio pelo formulário de remoção.
- Enquanto espera, dê um certificado válido ao subdomínio que motivou a decisão ou mude-o para outro domínio: a remoção pode levar de 6 a 12 semanas para chegar à maioria dos usuários do Chrome, e mais em outros navegadores.
- Não volte a enviar
preload, a não ser que queira entrar na lista de novo.
O max-age=0 só funciona por HTTPS e só para os visitantes que voltam e o recebem. Planeje pelo caminho mais lento: um navegador desatualizado que ainda tenha a entrada embutida, ou uma política de dois anos já guardada, pode continuar forçando HTTPS muito depois de você ter mudado de ideia.
9. O que o snapshot gratuito do Sitelemetry mostra
O snapshot gratuito de prontidão para lançamento do Sitelemetry (Launch Readiness Snapshot) roda oito verificações passivas em um domínio público, sem cadastro, e devolve uma pontuação com o resultado de cada verificação. Duas delas tratam de HSTS:
- A verificação de cabeçalhos de segurança HTTP lê a página inicial do domínio informado, depois de até cinco redirecionamentos. Ela classifica como média a ausência de Strict-Transport-Security num destino HTTPS e mostra o valor observado.
- A verificação de redirecionamento HTTPS marca como baixo um
max-ageabaixo de 180 dias (15.552.000 segundos) quando você informa só o domínio ou um endereçohttps://. Nas etapas 1 a 3 do plano, esse resultado é esperado.
O snapshot não verifica includeSubDomains, a diretiva preload, os seus subdomínios nem o status na lista; para isso, use o hstspreload.org e os comandos curl acima. Para abrir primeiro o resultado dos cabeçalhos, use o verificador gratuito de cabeçalhos de segurança, que roda o mesmo snapshot. Para a parte do certificado, leia o guia de certificado SSL/TLS e HSTS; o checklist de lançamento de site coloca o HSTS ao lado dos redirecionamentos, do DNS e das demais verificações antes de colocar no ar.
Perguntas frequentes
O preload do HSTS ainda é recomendado?
Não por padrão. O hstspreload.org recomenda HSTS para sites com HTTPS, mas não o preload, porque o Chrome e o Safari já tentam HTTPS nas navegações http://. O preload protege principalmente quando um atacante ativo bloqueia esses upgrades, e sair da lista leva meses.
Qual max-age a lista de preload HSTS exige?
Pelo menos 31536000 segundos (um ano), junto com includeSubDomains e preload, nas respostas HTTPS do domínio base. O cabeçalho de exemplo do hstspreload.org usa 63072000, dois anos. Chegue lá em etapas: 300, 604800 e 2592000 segundos e, por fim, o valor final.
Posso fazer preload só do www ou de um subdomínio?
Não. A lista aceita o domínio registrável, como example.com, e a entrada cobre todos os subdomínios abaixo dele, inclusive os internos. Se um único subdomínio não consegue servir HTTPS com certificado válido, não faça o preload do domínio.
Quanto tempo leva a remoção da lista de preload HSTS?
Segundo o hstspreload.org, de 6 a 12 semanas para chegar à maioria dos usuários do Chrome, e talvez mais em outros navegadores. Primeiro tire preload do cabeçalho e depois use o formulário de remoção. Quem guardou o seu cabeçalho mantém a política até o max-age expirar.
Como sei se o meu domínio está na lista de preload?
Digite-o no hstspreload.org, que mostra se ele está pré-carregado, pendente ou fora da lista, com os erros em relação aos requisitos. No Chrome, chrome://net-internals/#hsts mostra as entradas estáticas da lista embutida e as dinâmicas aprendidas com os cabeçalhos.
Fontes e leituras
- HSTS Preload List Submission: requisitos e recomendações de enviohstspreload.org
- HSTS Preload List Removal: remoção da listahstspreload.org
- RFC 6797: HTTP Strict Transport Security (HSTS)www.rfc-editor.org
- MDN: cabeçalho Strict-Transport-Securitydeveloper.mozilla.org
- The Chromium Projects: HTTP Strict Transport Securitywww.chromium.org
- OWASP: HTTP Strict Transport Security Cheat Sheetcheatsheetseries.owasp.org
- nginx: módulo ngx_http_headers_module (add_header)nginx.org
Preparado pela equipe editorial do Sitelemetry. Consulte as fontes indicadas para aprofundar o assunto.



