Pular para o conteúdo

Checklist: configurar proxy reverso WordPress com SSL e IP restrito

Por Equipe Técnica AviraHost · 10 min de leitura · Atualizado em · Nginx, WordPress, SSL, Segurança, Debian 13, Proxy Reverso, AviraHost · 0

Proxy reverso WordPress é uma arquitetura de rede onde um servidor (geralmente Nginx) recebe as requisições externas e as encaminha para o servidor de aplicação onde o CMS está hospedado, aumentando a segurança e performance. Para configurar essa estrutura com SSL e restrição de IP, siga estes passos:

  1. Instale o Nginx 1.28+ no Debian 13 e configure o bloco de servidor (server block).
  2. Obtenha um certificado SSL via Certbot para habilitar o protocolo TLS 1.3.
  3. Configure as diretivas de proxy_pass apontando para o endereço interno do WordPress.
  4. Implemente as regras de controle de acesso (allow/deny) para o diretório wp-admin.
  5. Ajuste o arquivo wp-config.php para reconhecer os cabeçalhos de encaminhamento HTTPS.

Pré-requisitos

  • Servidor rodando Debian 13 (Trixie) ou superior com acesso root ou sudo.
  • Nginx versão 1.28 ou superior instalado e funcional.
  • WordPress instalado em um backend (pode ser o mesmo servidor em porta diferente, como 8080, ou um container Docker).
  • Domínio apontado para o IP do servidor proxy.
  • Conhecimento básico em edição de arquivos via terminal (nano ou vim).
  • Acesso liberado nas portas 80 (HTTP) e 443 (HTTPS) no firewall do sistema.

Configurando o Nginx como Proxy Reverso para WordPress

A configuração de proxy reverso exige que o Nginx atue como a "cara" do seu site para a internet. Ele será responsável por receber a conexão do usuário, tratar a criptografia SSL e repassar a requisição de forma limpa para o backend. Ao utilizar o Nginx 1.28 no Debian 13, aproveitamos melhorias significativas em gerenciamento de memória e suporte a protocolos modernos.

Primeiro, crie um arquivo de configuração para o seu domínio no diretório /etc/nginx/sites-available/. É fundamental definir corretamente os cabeçalhos X-Forwarded-For e X-Forwarded-Proto, pois sem eles o WordPress não conseguirá identificar o IP real do visitante nem saberá que a conexão original era segura, o que frequentemente causa loops de redirecionamento infinitos.

server {
    listen 80;
    server_name seudominio.com.br;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Após salvar, ative o site criando um link simbólico e teste a sintaxe do Nginx:

ln -s /etc/nginx/sites-available/seudominio.com.br /etc/nginx/sites-enabled/
nginx -t

Output esperado: nginx: configuration file /etc/nginx/nginx.conf test is successful. Se você estiver acessando servidores VPS Linux da AviraHost, certifique-se de que o backend (porta 8080 no exemplo) esteja ativo antes de reiniciar o serviço.

Garantindo a Criptografia com SSL e TLS 1.3

A segurança da área administrativa do WordPress começa com a proteção dos dados em trânsito. O uso de um certificado SSL Let's Encrypt é o padrão da indústria para garantir que senhas e cookies de sessão não sejam interceptados. No Debian 13, o Certbot automatiza todo o processo de emissão e renovação, integrando-se perfeitamente ao Nginx.

Para forçar o uso do TLS 1.3, que é mais rápido e seguro que as versões anteriores, você deve ajustar as diretivas de SSL no bloco server do Nginx. Isso elimina cifras obsoletas que são vulneráveis a ataques modernos. Execute o comando abaixo para gerar o certificado:

sudo certbot --nginx -d seudominio.com.br

Após a geração, edite o arquivo gerado pelo Certbot para garantir a conformidade com o TLS 1.3:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;

Esta configuração assegura que qualquer tentativa de conexão via protocolos antigos seja recusada, mantendo a integridade da comunicação entre o navegador do administrador e o proxy. Se você tiver dúvidas sobre como o redirecionamento funciona, veja nosso guia sobre como redirecionar um site http para https.

Aplicando Restrição de IP no wp-admin com Segurança

A restrição de IP no WordPress é uma das medidas mais eficazes contra ataques de força bruta e tentativas de exploração de vulnerabilidades em plugins da área administrativa. Ao configurar o proxy reverso, podemos filtrar quem tem permissão para sequer visualizar a tela de login (wp-login.php) ou acessar o painel de controle (wp-admin).

No Nginx, isso é feito através de blocos de location específicos. É vital usar expressões regulares para capturar tanto o diretório quanto o arquivo de login, garantindo que a regra não seja contornada. Adicione o seguinte bloco dentro da sua configuração de servidor HTTPS:

location ~ ^/(wp-admin|wp-login\.php) {
    allow 203.0.113.10; # Substitua pelo seu IP fixo
    deny all;

    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

Atenção: Se o seu IP for dinâmico, você poderá perder o acesso ao painel caso o IP mude. Nesses casos, recomenda-se o uso de uma VPN com IP fixo ou a liberação de uma faixa de IPs da sua rede local. O uso de deny all ao final é obrigatório para que a política de "lista branca" funcione corretamente.

Ajustes Finais no WordPress (wp-config.php)

Para que o WordPress funcione corretamente atrás de um proxy reverso, ele precisa ser "avisado" de que está operando sob HTTPS, mesmo que a conexão entre o proxy e o backend seja via HTTP simples. Sem esse ajuste, o CMS tentará carregar scripts via HTTP, causando erros de conteúdo misto (mixed content) e quebrando o layout do painel administrativo.

Edite o arquivo wp-config.php no seu servidor de aplicação e adicione o seguinte código logo acima da linha que diz "That's all, stop editing!":

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}

if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
}

Esse trecho de código garante que o WordPress utilize o IP real do usuário para logs e auditoria, além de forçar a geração de URLs internas com o prefixo https://. Isso é essencial para a estabilidade da infraestrutura de hospedagem WordPress em ambientes profissionais.

Problemas comuns e como resolver

Sintoma: Erro 502 Bad Gateway ao acessar o site

Causa: O Nginx (proxy) não consegue se comunicar com o servidor de aplicação (backend). Isso geralmente ocorre porque o serviço do WordPress (ou o container Docker) está desligado ou ouvindo em uma porta diferente da configurada no proxy_pass.
Solução: Verifique se o backend está ativo com o comando ss -tulpen | grep 8080 e certifique-se de que o firewall interno permite conexões na porta de loopback.

Sintoma: Redirecionamento infinito (Too Many Redirects)

Causa: O WordPress não está identificando que a requisição já está em HTTPS e tenta redirecionar o usuário novamente para a versão segura, criando um loop entre o proxy e o backend.
Solução: Verifique se a diretiva proxy_set_header X-Forwarded-Proto $scheme; está presente no Nginx e se o bloco de código PHP foi adicionado corretamente ao wp-config.php.

Sintoma: Erro 403 Forbidden ao acessar o wp-admin

Causa: O seu endereço IP atual não está na lista de permissões (diretiva allow) configurada no Nginx, ou o Nginx está lendo o IP do próprio proxy em vez do IP do cliente.
Solução: Confirme seu IP público atual e atualize a configuração do Nginx. Certifique-se de que o módulo real_ip do Nginx está configurado se houver outro intermediário (como Cloudflare) antes do seu proxy.

Perguntas frequentes sobre proxy reverso WordPress

Como restringir o acesso ao wp-admin por IP no Nginx?

Para restringir o acesso, utilize a diretiva 'allow' seguida do seu endereço IP e 'deny all' dentro do bloco de localização da área administrativa no arquivo de configuração do Nginx. Isso garante que apenas conexões originadas de IPs autorizados consigam carregar a página de login do WordPress.

Por que usar um proxy reverso para a área administrativa do WordPress?

O uso de um proxy reverso adiciona uma camada extra de segurança, permitindo ocultar a infraestrutura real, aplicar certificados SSL de forma centralizada e filtrar requisições maliciosas antes que cheguem ao servidor de aplicação. Isso reduz drasticamente a superfície de ataque contra tentativas de força bruta no wp-login.php.

O SSL no proxy reverso protege as senhas do WordPress?

Sim, ao configurar o SSL no proxy reverso, todo o tráfego entre o navegador do usuário e o servidor proxy é criptografado via TLS 1.3. Isso impede que credenciais de login sejam interceptadas em ataques de 'man-in-the-middle' durante o acesso à área administrativa.

É possível configurar IP restrito sem quebrar o site para os visitantes?

Sim, a restrição deve ser aplicada especificamente aos blocos de localização '/wp-admin' e '/wp-login.php'. O restante do site permanece acessível publicamente, garantindo que apenas a interface de gerenciamento esteja protegida pelo filtro de endereços IP.

Conclusão

  • A implementação de um proxy reverso centraliza a gestão de segurança e certificados SSL, facilitando a manutenção.
  • A restrição de IP é a defesa mais robusta contra ataques automatizados ao painel administrativo do WordPress.
  • Ajustar o wp-config.php é um passo obrigatório para evitar erros de carregamento e loops de redirecionamento.

Leia também

Precisa de ajuda com seu servidor VPS?

Configurar infraestruturas complexas exige um ambiente estável e suporte técnico especializado para garantir que seu WordPress nunca fique offline. Conte com a performance superior dos nossos servidores para hospedar suas aplicações com segurança máxima.

Conheça nossos planos de Servidor VPS


Esta resposta foi útil?