← Todas as verificações
SegurançaSeveridade típica: Médio

Verificador de redirecionamento para HTTPS

Verifica se a versão HTTP do teu site redireciona corretamente para HTTPS em vez de servir sem cifrar.

O que verifica

Este verificador confirma que, quando alguém visita a versão HTTP do teu site, o servidor o redireciona para HTTPS em vez de servir a página sem cifra. Confirma que a porta insegura leva sempre à versão segura. Só observa o comportamento do redirecionamento.

Porque importa

Se a versão HTTP for servida tal como está, os visitantes podem navegar no teu site sem cifra e expor os seus dados sem dar por isso. Também facilita ataques que intercetam a ligação antes de chegar a HTTPS. Um redirecionamento correto garante que todo o tráfego acaba protegido.

Como se corrige

Configura o teu servidor ou alojamento para que todos os pedidos HTTP façam um redirecionamento permanente para HTTPS. Combinado com o cabeçalho HSTS, o navegador vai direto à versão segura em visitas futuras. Muitas plataformas oferecem este redirecionamento com apenas uma caixa de seleção.

Como funciona esta verificação

O Scanaris pede a tua página por http://, sem o s, sem seguir redirecionamentos, e vê o que o servidor responde. Se devolve um código de redirecionamento (301, 302, 307 ou 308) para um URL https://, está tudo bem. Se responde 200 e serve a página em claro, abre um achado de severidade média: a versão sem cifragem do teu site existe e funciona. Se redireciona mas o destino continua a ser http:// (por exemplo, da raiz para http://www), abre um de severidade baixa: a cadeia de redirecionamentos tem um elo sem cifragem. Só se testa o URL analisado; convém que o comportamento seja o mesmo em todas as rotas, não só na página inicial.

Porque importa

Enquanto existir uma versão HTTP que responde, qualquer link antigo, qualquer endereço escrito à mão e qualquer rede pública podem levar o utilizador ao teu site sem cifragem. Nesse estado, quem controla a rede (o wifi do aeroporto, um fornecedor malicioso) lê o que é enviado e pode modificar a página antes de chegar. É a base dos ataques de intermediário. Um 301 para HTTPS fecha essa porta no primeiro pedido, e o HSTS fecha-a em todos os seguintes.

Como corrigir consoante o teu alojamento

  • Vercel, Netlify, Cloudflare Pages, Railway, Render: o redirecionamento vem ativado. Se vês o achado, normalmente o domínio aponta para outro servidor ou há um proxy à frente a responder por HTTP.
  • Cloudflare como proxy: ativa "Always Use HTTPS" e põe o modo SSL em "Full (strict)". Com "Flexible", o troço entre a Cloudflare e o teu servidor vai sem cifragem.
  • nginx:
server {
  listen 80;
  server_name oteudominio.com www.oteudominio.com;
  return 301 https://$host$request_uri;
}
  • Apache: no VirtualHost da porta 80, Redirect permanent / https://oteudominio.com/.
  • Express atrás de um proxy: um middleware que verifique req.headers['x-forwarded-proto'] !== 'https' e responda com res.redirect(301, 'https://' + req.headers.host + req.url), com app.set('trust proxy', 1).

Usa um 301 ou um 308 (permanentes) e não um 302: os motores de busca consolidam a autoridade na versão HTTPS e os navegadores guardam o salto em cache. Depois acrescenta o cabeçalho HSTS, que mede o check de HSTS fraco, para que o navegador nem sequer tente HTTP da próxima vez.

Confirma que está corrigido

curl -sI http://oteudominio.com | grep -iE "^HTTP|^location"
curl -sI http://oteudominio.com/uma-pagina-qualquer | grep -iE "^HTTP|^location"
curl -sI http://www.oteudominio.com | grep -iE "^HTTP|^location"

As três devem responder 301 ou 308 com um Location que comece por https://. Se a segunda não redireciona, a tua regra só cobre a página inicial.

Perguntas frequentes

Não basta ter HTTPS ativado?

Não. Ter certificado significa que a versão segura existe; o redirecionamento significa que a insegura não é usada. Sem ele, as duas coexistem.

Porquê 301 e não 302?

O 302 é temporário: os navegadores voltam a pedir a versão HTTP de cada vez e os motores de busca não transferem a autoridade. O 301 (ou o 308, que além disso conserva o método) é o sinal de que a mudança é definitiva.

A minha API não precisa de HTTPS, só a minha app a usa.

Precisa, sim: por essa API viajam tokens e dados dos teus utilizadores. E se a app a chama por HTTP a partir de uma página HTTPS, o navegador bloqueia-a como conteúdo misto.

Verifica-o no teu site

Analisa o teu site grátis e vê se esta e outras 44 verificações passam, com um fix prompt por cada problema.

Analisar o meu site grátis

Do blog

Verificações relacionadas