03.04.2025

Como configurar um redirecionamento HTTPS a partir do site

Muitas vezes, bots de mecanismos de busca armazenam informações em cache sobre páginas do site, o que pode levar o usuário a uma página vazia ou forçá-lo a acessar via protocolo HTTP inseguro, em vez de HTTPS criptografado.

Para esses casos, existe o redirecionamento — que direciona o usuário de uma página para outro domínio ou endereço — e pode ser implementado em diferentes camadas. Neste material, mostramos as principais formas e situações!

Redirecionamento de HTTP para HTTPS

A conexão via protocolo HTTP já não é considerada segura há tempos, por isso muitos serviços adotaram o upgrade para HTTPS, com conexão criptografada.

Nos servidores Apache e Nginx, há regras que permitem gerenciar hosts virtuais e o servidor em geral. Para configurar o upgrade automático da URL de HTTP para HTTPS, acesse os arquivos de configuração do host virtual e adicione regras de redirecionamento:

sudo nano /etc/nginx/sites-available/default

Por padrão, o arquivo de configuração se chama default. Se no seu caso for diferente, substitua o nome. Adicione a seguinte configuração:

server {
listen 80;
server_name example.com;
return 301 https://$host;
}
server {
listen 443 ssl;
ssl_certificate /etc/nginx/keys/subkeys/certificate.crt;
ssl_certificate_key /etc/nginx/keys/subkeys/private.key;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
server_name example.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
}

Captura 1 — Configuração com HSTS

Os hosts virtuais são divididos em blocos server, com regras de tratamento de tráfego. Se o primeiro bloco receber um pacote na porta 80 (HTTP), ele retorna um return 301, instruindo o navegador a acessar o site via HTTPS.

Além das configurações padrão, foi adicionado o cabeçalho Strict-Transport-Security, que informa ao navegador que ele deve forçar a conexão HTTPS. Essa medida mitiga ataques de downgrade HTTP, nos quais um atacante tenta forçar uma conexão insegura, sem autenticação e verificação de integridade — algo que o return 301 ajuda a prevenir.

Captura 2 — Testando o redirecionamento

Agora, vamos verificar se o redirecionamento está funcionando corretamente.

Redirecionamento interno

Se não quisermos enviar códigos de redirecionamento ao navegador, podemos utilizar o redirecionamento interno. O Nginx possui diversas diretivas que permitem tratar o tráfego internamente, sem que o usuário perceba. Exemplo:

server {
listen 80;
server_name example.com;
location / {
internal_redirect @check_antivirus;
}
location @check_antivirus {
internal;
root /var/www/html
}
location /url {
internal_redirect /newurl;
}
location /newurl {
internal;
root /var/www/html
}
}

Captura 3 — Redirecionamento interno

Neste exemplo, requisições feitas para / ou /url serão internamente redirecionadas para outro caminho, preservando o restante da URL. Por exemplo: uma chamada para /url/new/id?customer=675 será processada como /newurl/new/id?customer=675. Após ajustar o arquivo, valide a configuração com:

sudo nginx -t

Captura 4 — Testando o config

Atenção: esse recurso de redirecionamento interno foi introduzido na versão Nginx 1.23.4!

Redirecionamento via HTML/JS

Também é possível redirecionar no lado do cliente, usando HTML ou JavaScript.

<head>
<meta http-equiv="refresh" content="0;URL=http://site.ru" />
</head>

O navegador processa a instrução e recarrega a página para a URL especificada.

Captura 5 — Redirect HTML

window.location = 'https://www.example.com';\

Esse código executa um redirecionamento direto. Ou com condição:

if (CONDITION) { window.location.href = 'https://www.example.com'; }

As possibilidades de tratar tráfego na web são amplas, desde HTML/JS no navegador até configurações em nível de servidor.

Para testar essas configurações com segurança, recomendamos usar um ambiente isolado — por exemplo, um servidor VPS em uma das plataformas da Serverspace, como vStack cloud ou VMware cloud.

Clique em Criar servidor, selecione a configuração ideal e inicie a instância.

Captura 6 — Criação do servidor

Após o provisionamento, você pode acessar o servidor da forma que preferir.