A configuração HSTS (HTTP Strict Transport Security) é um mecanismo de segurança crucial que força conexões HTTPS, protegendo seu site contra ataques de downgrade e interceptação. Verificar se está ativo é essencial para garantir a segurança dos seus visitantes.
Quando implementado corretamente, o HSTS instrui navegadores a sempre usarem HTTPS em vez de HTTP, mesmo que o usuário tente acessar seu site via protocolo inseguro. Esta camada adicional de proteção previne diversos vetores de ataque, incluindo o perigoso man-in-the-middle.
Conteúdos
O que é HSTS e por que é importante para seu site
HTTP Strict Transport Security (HSTS) é uma política de segurança web que protege sites contra ataques de downgrade e sequestro de cookies. Quando implementado, o servidor web envia um cabeçalho especial que instrui navegadores compatíveis a:
- Sempre usar conexões seguras HTTPS para todas as comunicações futuras
- Converter automaticamente tentativas de acesso HTTP para HTTPS
- Impedir que usuários ignorem avisos de certificados inválidos
A importância do HSTS não pode ser subestimada no ambiente digital atual. Sem ele, seu site fica vulnerável mesmo que utilize HTTPS, pois os usuários podem inicialmente se conectar via HTTP antes do redirecionamento para HTTPS.
“O HSTS é uma das melhores práticas de segurança mais importantes e, ao mesmo tempo, mais simples de implementar. Ele elimina o risco de ataques durante aquela janela crítica de vulnerabilidade quando um usuário acessa um site via HTTP antes do redirecionamento para HTTPS.” Troy Hunt, especialista em segurança web e criador do Have I Been Pwned
Como verificar se o HSTS está habilitado no seu site
Existem várias maneiras de verificar se o HSTS está corretamente configurado no seu site. Vou apresentar os métodos mais eficazes e acessíveis:
Este é o método mais direto e não requer ferramentas externas:
- Acesse seu site usando HTTPS
- Abra as Ferramentas de Desenvolvedor (F12 ou Ctrl+Shift+I na maioria dos navegadores)
- Vá para a aba “Network” (Rede)
- Recarregue a página (F5)
- Clique no documento HTML principal (geralmente o primeiro item da lista)
- Examine os cabeçalhos de resposta (Response Headers)
- Procure por “Strict-Transport-Security”
Se o cabeçalho estiver presente, o HSTS está habilitado. O valor deve ser algo como: “max-age=31536000; includeSubDomains; preload”
2. Utilizando ferramentas online especializadas
Existem serviços online gratuitos que podem verificar a configuração HSTS do seu site:
- HSTS Preload List Submission – Verifica se seu site está pronto para inclusão na lista preload do HSTS
- Qualys SSL Labs – Fornece uma análise completa da configuração SSL/TLS, incluindo HSTS
- Security Headers – Analisa todos os cabeçalhos de segurança, incluindo HSTS
3. Usando a linha de comando
Para usuários mais técnicos, o comando curl é uma excelente opção:
curl -s -D- https://seusite.com | grep -i Strict
Este comando exibirá o cabeçalho HSTS se estiver configurado.
Como habilitar o HSTS no seu servidor web
Se você descobriu que o HSTS não está habilitado, aqui está como implementá-lo nos servidores web mais comuns:
Para Apache
Adicione as seguintes linhas ao arquivo .htaccess na raiz do seu site ou à configuração do VirtualHost:
Header always set Strict-Transport-Security “max-age=31536000; includeSubDomains; preload”
Certifique-se de que o módulo headers está habilitado (a2enmod headers).
Para Nginx
Adicione esta linha dentro do bloco server para HTTPS:
add_header Strict-Transport-Security “max-age=31536000; includeSubDomains; preload” always;
Para IIS
No arquivo web.config, adicione:
“Implementar HSTS é uma das medidas mais eficazes para proteger seu site contra ataques de downgrade e interceptação. É um componente essencial em uma estratégia de segurança web moderna.” Scott Helme, pesquisador de segurança e criador do Security Headers
Parâmetros importantes do cabeçalho HSTS
Ao configurar o HSTS, é importante entender os parâmetros disponíveis:
- max-age: Define por quanto tempo (em segundos) o navegador deve lembrar de acessar o site apenas via HTTPS. Recomenda-se um valor alto como 31536000 (1 ano).
- includeSubDomains: Aplica a política HSTS a todos os subdomínios do seu site.
- preload: Indica que você deseja que seu site seja incluído na lista de preload HSTS integrada aos navegadores. Isso oferece proteção máxima, mas requer requisitos adicionais.
Considerações sobre a lista preload
A lista preload HSTS é uma lista de sites que vêm pré-configurados nos navegadores para sempre usar HTTPS. Para ser incluído:
- Seu site deve ter um certificado válido
- Todos os subdomínios devem suportar HTTPS
- O cabeçalho HSTS deve incluir “max-age” de pelo menos 31536000 segundos (1 ano)
- O cabeçalho deve incluir os parâmetros “includeSubDomains” e “preload”
- Você deve enviar seu domínio para hstspreload.org
Atenção: A inclusão na lista preload é difícil de reverter e pode afetar todos os subdomínios. Certifique-se de que está preparado antes de solicitar a inclusão.
Testando a eficácia da sua configuração HSTS
Após habilitar o HSTS, é importante verificar se está funcionando corretamente:
- Limpe o cache do seu navegador
- Tente acessar seu site via HTTP (http://seusite.com)
- Observe se o navegador automaticamente converte para HTTPS sem um redirecionamento visível
- Verifique novamente os cabeçalhos para confirmar que o HSTS está sendo enviado
Se o navegador converter silenciosamente para HTTPS sem mostrar um redirecionamento na barra de endereços, o HSTS está funcionando corretamente.
Possíveis problemas e soluções
Ao implementar o HSTS, você pode encontrar alguns desafios:
Certificado SSL inválido
Se seu certificado SSL for inválido, os navegadores bloquearão completamente o acesso ao site quando o HSTS estiver ativo. Certifique-se de:
- Manter seu certificado SSL sempre válido e atualizado
- Configurar renovações automáticas
- Testar regularmente a validade do certificado
Conteúdo misto
O HSTS pode causar problemas com conteúdo misto (recursos HTTP em páginas HTTPS). Antes de implementar:
- Verifique se todo o conteúdo do site (imagens, scripts, estilos) é servido via HTTPS
- Use ferramentas como o Why No Padlock para identificar conteúdo misto
Subdomínios não preparados
Se usar includeSubDomains, todos os subdomínios precisam suportar HTTPS. Antes de ativar:
- Faça um inventário de todos os subdomínios
- Confirme que todos têm certificados SSL válidos
- Teste cada subdomínio individualmente
Conclusão e melhores práticas
O HSTS é uma camada essencial de segurança para qualquer site moderno. Implementá-lo corretamente:
- Protege seus usuários contra ataques de interceptação
- Melhora a segurança geral do seu site
- Pode até melhorar levemente o desempenho ao eliminar redirecionamentos HTTP para HTTPS
Para uma implementação ideal, recomendo:
- Começar com um valor max-age moderado (por exemplo, uma semana) e aumentar gradualmente
- Adicionar includeSubDomains somente depois de garantir que todos os subdomínios estão prontos
- Considerar cuidadosamente a opção preload, entendendo que é difícil de reverter
- Monitorar regularmente a configuração HSTS como parte da sua rotina de manutenção de segurança
Ao verificar e implementar corretamente o HSTS, você dá um passo importante para proteger seu site e seus usuários contra ameaças de segurança cada vez mais sofisticadas.
Você conseguiu verificar se o HSTS está habilitado no seu site usando algum dos métodos que expliquei? Encontrou alguma dificuldade específica na implementação que eu possa ajudar a resolver?