Todos os guias de implantacao Implantacao

Como Redirecionar HTTP para HTTPS

Após instalar seu certificado SSL, você precisa redirecionar todo o tráfego HTTP para HTTPS. Sem um redirecionamento, os visitantes que acessam http://seudominio.com não usarão a conexão criptografada — mesmo que o HTTPS esteja disponível.

Use um redirecionamento 301 (permanente) para que os mecanismos de busca transfiram todos os sinais de classificação para a URL HTTPS.

Nginx

Adicione um bloco server separado para a porta 80 que redireciona tudo:

server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

Isso preserva o caminho completo da URL: http://example.com/page?q=1https://example.com/page?q=1.

Após editar, teste e recarregue:

sudo nginx -t && sudo systemctl reload nginx

Apache

Opção 1: Redirecionamento via VirtualHost (recomendado)

Adicione à sua configuração do Apache:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / https://example.com/
</VirtualHost>

Opção 2: .htaccess (hospedagem compartilhada)

Se você não tem acesso à configuração do VirtualHost (hospedagem compartilhada), adicione ao .htaccess do seu site:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Requer que o mod_rewrite esteja habilitado.

Após as alterações:

sudo apachectl configtest && sudo systemctl reload apache2

Verifique o redirecionamento

# Deve retornar 301 com Location: https://...
curl -I http://yourdomain.com

Saída esperada:

HTTP/1.1 301 Moved Permanently
Location: https://yourdomain.com/

HSTS: a trava dupla

Após confirmar que seu redirecionamento funciona, adicione HSTS (HTTP Strict Transport Security). Isso instrui os navegadores a sempre usar HTTPS, mesmo que o usuário digite http://:

Nginx:

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

Apache:

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

Comece com um max-age curto (ex.: 300 segundos) para testar, depois aumente para 2 anos (63072000) quando tiver certeza de que tudo funciona.

Aviso: Uma vez que o HSTS esteja ativo com um max-age longo, os navegadores se recusarão a conectar via HTTP mesmo se você remover o HTTPS. Certifique-se de que sua configuração HTTPS é estável antes de definir uma duração longa.

Padrões comuns de redirecionamento

Redirecionar www para non-www + HTTPS

# Nginx: www → non-www, HTTP + HTTPS → HTTPS
server {
    listen 80;
    listen 443 ssl;
    server_name www.example.com;
    ssl_certificate     /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;
    return 301 https://example.com$request_uri;
}

Redirecionar non-www para www + HTTPS

server {
    listen 80;
    listen 443 ssl;
    server_name example.com;
    ssl_certificate     /etc/ssl/fullchain.pem;
    ssl_certificate_key /etc/ssl/privkey.pem;
    return 301 https://www.example.com$request_uri;
}

Redirecionar um domínio antigo inteiro

server {
    listen 80;
    listen 443 ssl;
    server_name olddomain.com www.olddomain.com;
    ssl_certificate     /etc/ssl/old-fullchain.pem;
    ssl_certificate_key /etc/ssl/old-privkey.pem;
    return 301 https://newdomain.com$request_uri;
}

Você precisa de um certificado SSL válido para o domínio antigo também — os navegadores devem estabelecer HTTPS antes de receberem o redirecionamento. Use um certificado SAN que cubra ambos os domínios, ou um certificado separado para o domínio antigo.

Solução de problemas

Loop de redirecionamento (ERR_TOO_MANY_REDIRECTS)

Isso geralmente significa que seu bloco de servidor HTTPS também está redirecionando para HTTPS. Verifique se apenas o bloco da porta 80 possui o redirecionamento — o bloco da porta 443 deve servir o conteúdo normalmente.

Outra causa: um balanceador de carga ou proxy (Cloudflare, AWS ALB) termina o SSL e encaminha HTTP para seu servidor. Seu servidor vê HTTP e redireciona. Corrija verificando o header X-Forwarded-Proto:

# Atrás de um proxy/balanceador de carga
if ($http_x_forwarded_proto = "http") {
    return 301 https://$host$request_uri;
}

URLs HTTP antigos em cache nos mecanismos de busca

Após configurar os redirecionamentos, informe o Google sobre a mudança:

  1. Atualize <link rel="canonical"> para usar https://
  2. Atualize as URLs do seu sitemap para https://
  3. No Google Search Console, adicione a propriedade HTTPS

O Google atualizará gradualmente as URLs indexadas conforme segue os redirecionamentos 301.

Perguntas frequentes

Devo redirecionar www para non-www (ou vice-versa) ao mesmo tempo?

Sim. Escolha uma forma canônica e redirecione a outra. Isso evita conteúdo duplicado nos mecanismos de busca:

# Redirecionar www para non-www (Nginx)
server {
    listen 80;
    listen 443 ssl;
    server_name www.example.com;
    return 301 https://example.com$request_uri;
}

O redirecionamento afetará o SEO?

Um redirecionamento 301 transfere sinais de classificação para a URL de destino. O Google recomenda redirecionamentos 301 para migração de HTTP para HTTPS. Pode haver uma pequena flutuação temporária, mas a longo prazo o SEO melhora por causa do sinal de classificação HTTPS.

E quanto ao conteúdo misto após o redirecionamento?

O redirecionamento lida com as URLs das páginas, mas se seu HTML referencia recursos (imagens, scripts, CSS) com URLs http://, os navegadores os bloquearão ou mostrarão avisos. Veja nosso guia de correção de conteúdo misto.

Como testo se meu redirecionamento está funcionando corretamente?

# Verificar cadeia de redirecionamento
curl -ILs http://yourdomain.com | grep -E '^HTTP|^Location'

Saída esperada:

HTTP/1.1 301 Moved Permanently
Location: https://yourdomain.com/
HTTP/2 200

A primeira resposta deve ser 301 com um Location HTTPS, e a resposta final deve ser 200.

Devo redirecionar no nível do DNS ou do servidor?

No nível do servidor (configuração Nginx/Apache ou .htaccess). Redirecionamentos no nível do DNS (como Page Rules do Cloudflare) funcionam, mas adicionam um salto de rede e dão menos controle sobre o comportamento do redirecionamento. Redirecionamentos no nível do servidor são mais rápidos e confiáveis.

Artigos relacionados

Implantacao 2026-05-08
Como Instalar um Certificado SSL no Nginx
Guia passo a passo para instalar um certificado SSL no Nginx. Abrange upload de arquivos, configuração completa do bloco server, boas práticas de TLS, HTTP/2, HSTS, configuração de redirecionamento, testes e solução de 6 erros comuns.
Implantacao 2026-05-08
Como Instalar um Certificado SSL no Apache
Guia passo a passo para instalar um certificado SSL no Apache com mod_ssl. Cobre upload de arquivos, configuração de VirtualHost, boas práticas de TLS, HSTS, redirecionamento HTTP e solução de 5 erros comuns.
Primeiros passos 2026-05-08
Como obter um certificado SSL gratuito (guia passo a passo)
Obtenha um certificado SSL gratuito do Let's Encrypt em 5 minutos — sem software para instalar, sem conta para criar. Guia completo cobrindo 4 métodos, ambos os tipos de desafio, instalação em 6 plataformas e solução de problemas.
Obtenha um certificado SSL gratuito no seu navegador
Sem instalacao, sem conta. Sua chave privada nunca sai do seu dispositivo.
Obter seu certificado