Desenvolvimento· Arrumando a casa · parte 22
Três regras de HSTS num só domínio: por que deixei o preload de fora.
Como resolvi a divergência entre borda, repositório e SRS no Currículo para Vaga e por que uso 6 meses de HSTS sem preload nas zonas da conta.

No teste em produção do Currículo para Vaga, em 5 de novembro de 2026, três lugares davam três respostas diferentes para o mesmo cabeçalho de segurança. Dois deles pediam HSTS com preload, justamente a diretiva mais difícil de desfazer depois que entra em vigor.
O HSTS é o cabeçalho que manda o navegador usar só HTTPS num domínio durante o período definido em max-age. Com includeSubDomains, a regra vale também para os subdomínios. A diretiva preload sinaliza consentimento para inclusão numa lista embutida nos navegadores; ela sozinha não inclui o domínio. É preciso também solicitar a inclusão e cumprir os requisitos da lista de preload. Com o domínio incluído, a regra vale até na primeira visita.
Borda, repositório e SRS pediam prazos diferentes
A divergência apareceu marcada como de prioridade baixa. A borda da Cloudflare servia 6 meses, ou 15.552.000 segundos, sem preload. Os arquivos _headers do repositório pediam 1 ano com preload, e o requisito do SRS pedia 2 anos, ou 63.072.000 segundos, também com preload.
O requisito mais seguro no papel era o mais difícil de desfazer
Entrar na lista de preload parece a escolha mais segura na documentação, mas é difícil de desfazer e obriga HTTPS também nos subdomínios. Se surgir um subdomínio sem HTTPS válido, o navegador não permite contornar o erro para acessá-lo.
Antes de pedir o preload, faça uma pergunta: todos os subdomínios, hoje e no futuro, aguentam só HTTPS? Os 6 meses de max-age com includeSubDomains já obrigam HTTPS depois que o navegador recebe o cabeçalho, sem incluir a zona nessa lista. A primeira visita é a diferença: sem preload, o navegador ainda precisa aprender a regra.
O padrão da conta alinhou todos os arquivos à borda
Em 8 de novembro de 2026, ficou o meu padrão de domínios, que vale para as zonas da conta: max-age=15552000, com includeSubDomains e sem preload. O requisito do SRS e os três arquivos _headers passaram a dizer exatamente o mesmo que a borda da Cloudflare.
O mesmo padrão de domínios define SSL strict, TLS mínimo 1.2, TLS 1.3, Always HTTPS e Automatic HTTPS Rewrites. Esse conjunto exige HTTPS na borda. A proteção da primeira visita oferecida pela lista de preload é uma decisão separada.
A exceção do Garfim ficou documentada no alinhamento
No portfólio, a exceção é o Garfim, em que o próprio app envia 1 ano com preload. A divergência ficou registrada no documento de alinhamento do produto, em vez de ser escondida.
Quando três arquivos dizem três coisas, decida uma vez num padrão e alinhe todos ao que a produção realmente serve. Para ver o restante dessa base, leia sobre o padrão de domínios na Cloudflare e veja como organizo o padrão entre produtos.