fbpx
Pesquisar

Como Resolver Problemas de SSL com Varnish no WordPress

O uso de Varnish como um acelerador de cache pode melhorar significativamente o desempenho de sites WordPress, garantindo tempos de carregamento mais rápidos e uma melhor experiência para os usuários. No entanto, quando você usa Varnish em conjunto com SSL (Secure Sockets Layer), podem surgir problemas, como loops de redirecionamento ao tentar acessar o painel administrativo do WordPress. Este artigo vai explicar como resolver esses problemas, incluindo a adição de código específico no arquivo wp-config.php.

how varnish works 1024x683 1
Entendendo o Varnish Cache

Entendendo o Problema de Redirecionamento SSL com Varnish

O Varnish não suporta SSL de forma nativa. Portanto, é comum que a configuração do SSL seja feita com um proxy reverso, como Nginx ou Apache, antes de passar a requisição para o Varnish. Isso pode causar um problema em que o WordPress não reconhece corretamente se a conexão é segura, resultando em loops de redirecionamento ao acessar o /wp-admin.

Para resolver esse problema, é necessário fazer ajustes no arquivo wp-config.php do WordPress para garantir que o WordPress reconheça a conexão SSL corretamente quando o Varnish está em uso.

Código para Resolver Problemas de SSL com Varnish

Adicionar o código abaixo no arquivo wp-config.php do WordPress pode ajudar a resolver os problemas de redirecionamento SSL:

// SSL + Varnish
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
define('CONCATENATE_SCRIPTS', false);
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
    $_SERVER['HTTPS'] = 'on';
}

Explicação do Código

  • define('FORCE_SSL_LOGIN', true);: Força que a página de login seja carregada sobre SSL, garantindo a segurança das credenciais dos usuários.
  • define('FORCE_SSL_ADMIN', true);: Assegura que todo o acesso ao painel administrativo do WordPress seja feito via SSL.
  • define('CONCATENATE_SCRIPTS', false);: Desabilita a concatenação de scripts no painel administrativo para evitar problemas de carregamento com configurações de cache.
  • Bloco if: Verifica se a requisição contém o cabeçalho HTTP_X_FORWARDED_PROTO, que é utilizado por proxies para informar se a conexão original foi feita por HTTPS. Se for o caso, a variável $_SERVER['HTTPS'] é configurada como ‘on’, o que faz com que o WordPress reconheça a conexão como segura.

Como Adicionar o Código no wp-config.php

  1. Acesse o Servidor: Use um cliente FTP/SFTP ou o terminal (via SSH) para acessar os arquivos do seu WordPress.
  2. Abra o Arquivo wp-config.php: Encontre o arquivo wp-config.php na raiz da instalação do WordPress e edite-o.
  3. Cole o Código: Adicione o código mencionado acima antes da linha que diz /* That’s all, stop editing! Happy blogging. */.
  4. Salve e Teste: Salve o arquivo e faça um teste acessando o painel administrativo do WordPress para verificar se o problema de redirecionamento foi resolvido.

Outras Dicas para Gerenciar SSL com Varnish

Além de ajustar o wp-config.php, considere as seguintes práticas para garantir um ambiente mais seguro e eficiente:

1. Configure o Proxy Reverso Corretamente

Certifique-se de que o proxy reverso (Nginx ou Apache) esteja configurado para adicionar o cabeçalho HTTP_X_FORWARDED_PROTO às requisições enviadas ao Varnish. Isso ajuda a manter a integridade da informação sobre o protocolo original (HTTP ou HTTPS).

# Exemplo de configuração Nginx para adicionar o cabeçalho
proxy_set_header X-Forwarded-Proto $scheme;

2. Utilize Certificados SSL de Qualidade

Opte por certificados SSL confiáveis, como aqueles emitidos por autoridades certificadoras (CA) renomadas, para garantir que a criptografia seja segura e reconhecida pelos navegadores.

3. Teste a Configuração em um Ambiente de Desenvolvimento

Sempre teste alterações críticas, como edições no wp-config.php, em um ambiente de desenvolvimento antes de aplicá-las ao site de produção. Isso ajuda a prevenir possíveis interrupções no funcionamento do site.

Por Que Esse Código Funciona?

Quando você está usando Varnish em conjunto com um proxy reverso para SSL, o cabeçalho HTTP_X_FORWARDED_PROTO é geralmente adicionado para indicar que a conexão original foi feita com HTTPS. O WordPress, por padrão, não verifica esse cabeçalho, então ele precisa ser configurado manualmente para reconhecer a conexão como segura.

Esse código faz exatamente isso, ajustando a variável $_SERVER['HTTPS'] para que o WordPress reconheça a conexão SSL e evite loops de redirecionamento.

Conclusão

O uso de Varnish com WordPress e SSL pode ser desafiador, mas com a configuração adequada, é possível evitar problemas comuns, como loops de redirecionamento. Adicionar o código correto no arquivo wp-config.php garante que o WordPress reconheça a conexão segura e permita o acesso fluido ao painel administrativo.

Essa configuração é uma etapa essencial para quem deseja combinar o desempenho de Varnish com a segurança do SSL no WordPress. Certifique-se de sempre testar suas alterações em um ambiente de desenvolvimento ou de ter backups atualizados antes de modificar arquivos críticos do site.

Conheça nosso Canal do Youtube
Escute Nosso DoluCast
Melhores da Semana