Se o seu site WordPress ainda não usa HTTPS, você está perdendo visitantes, prejudicando seu SEO e expondo dados dos seus usuários. Desde 2018, o Google Chrome marca sites sem SSL como "Não seguros", e o HTTPS se tornou um fator de ranqueamento.
Neste tutorial, vamos cobrir tudo o que você precisa saber para configurar SSL no WordPress corretamente: desde a instalação do certificado até a correção de mixed content e o redirecionamento forçado via .htaccess.
O Que é SSL/TLS?
SSL (Secure Sockets Layer) e TLS (Transport Layer Security) são protocolos de criptografia que protegem a comunicação entre o navegador do visitante e o servidor do seu site. O TLS é a versão mais moderna e segura, mas o termo "SSL" ainda é usado popularmente para se referir a ambos.
Quando o SSL está ativo, o endereço do seu site muda de http:// para https:// , e um cadeado aparece na barra de endereço do navegador.
Como funciona a criptografia
- O navegador solicita uma conexão segura ao servidor
- O servidor envia seu certificado SSL
- O navegador valida o certificado com a autoridade certificadora
- Uma chave de sessão criptografada é criada
- Toda a comunicação entre navegador e servidor passa a ser criptografada
Por Que o HTTPS é Importante?
Segurança dos dados
Sem SSL, qualquer dado transmitido entre o visitante e o servidor pode ser interceptado. Isso inclui senhas, dados pessoais e informações de pagamento. Em redes Wi-Fi públicas, essa interceptação é trivial para atacantes.
SEO e ranqueamento no Google
O Google confirmou que HTTPS é um fator de ranqueamento. Sites com SSL têm vantagem sobre sites equivalentes sem certificado. Além disso, o Google Search Console trata as versões HTTP e HTTPS como propriedades diferentes.
Confiança do visitante
Navegadores modernos exibem avisos proeminentes em sites sem SSL. O Chrome mostra "Não seguro" na barra de endereço, o que afasta visitantes e reduz conversões.
Requisito para funcionalidades modernas
Várias APIs e funcionalidades do navegador exigem HTTPS para funcionar: Service Workers, geolocalização, câmera, microfone e Progressive Web Apps.
Tipos de Certificados SSL
Domain Validation (DV)
O tipo mais simples e rápido de obter. Valida apenas que você controla o domínio. Ideal para blogs, sites institucionais e lojas pequenas.
Exemplo: Let's Encrypt, Cloudflare SSL.
Organization Validation (OV)
Valida a identidade da organização além do domínio. Exige documentação da empresa. Recomendado para sites corporativos e e-commerce de médio porte.
Extended Validation (EV)
O nível mais alto de validação. Exige verificação extensiva da empresa. Costuma ser usado por bancos e grandes e-commerces. O custo é significativamente maior.
Wildcard SSL
Protege o domínio principal e todos os subdomínios (por exemplo, *.seusite.com ). Útil quando você tem vários subdomínios como loja.seusite.com , blog.seusite.com .
Como Obter um Certificado SSL Gratuito com Let's Encrypt
O Let's Encrypt é uma autoridade certificadora gratuita e automatizada. A maioria das hospedagens já oferece integração direta com o Let's Encrypt.
Instalando via cPanel
- Acesse o cPanel da sua hospedagem
- Procure por SSL/TLS ou Let's Encrypt na seção de segurança
- Selecione o domínio desejado
- Clique em Emitir ou Instalar
- Aguarde a validação (geralmente leva poucos minutos)
- O certificado será renovado automaticamente a cada 90 dias
Instalando via Plesk
- Acesse o painel Plesk
- Vá em Websites & Domains
- Clique em SSL/TLS Certificates
- Selecione Let's Encrypt
- Marque a opção de renovação automática
- Clique em Install
Instalando via linha de comando (Certbot)
Para servidores VPS com acesso SSH, o Certbot é a ferramenta recomendada:
Para Apache:
sudo apt update sudo apt install certbot python3-certbot-apache sudo certbot --apache -d seusite.com -d www.seusite.com
Para Nginx:
sudo apt update sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d seusite.com -d www.seusite.com
O Certbot configura automaticamente o servidor web para usar o certificado e agenda a renovação automática.
Testando a renovação automática:
sudo certbot renew --dry-run
Instalando manualmente no Apache
Se o Certbot não estiver disponível, configure o Apache manualmente:
<VirtualHost *:443>
ServerName seusite.com
ServerAlias www.seusite.com
DocumentRoot /var/www/seusite.com/public_html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/seusite.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/seusite.com/privkey.pem
<Directory /var/www/seusite.com/public_html>
AllowOverride All
</Directory>
</VirtualHost>
Instalando manualmente no Nginx
server {
listen 443 ssl http2;
server_name seusite.com www.seusite.com;
root /var/www/seusite.com/public_html;
ssl_certificate /etc/letsencrypt/live/seusite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/seusite.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Configurando o WordPress para HTTPS
Após instalar o certificado SSL no servidor, é preciso configurar o WordPress para usar HTTPS.
Atualizando as URLs no wp-config.php
Adicione estas linhas ao arquivo wp-config.php , antes da linha /* Isso é tudo, pode parar de editar! */ :
define( 'WP_SITEURL', 'https://seusite.com' ); define( 'WP_HOME', 'https://seusite.com' );
Essas constantes forçam o WordPress a usar HTTPS para todas as URLs geradas pelo sistema.
Forçando SSL no painel administrativo
Para garantir que o painel do WordPress sempre use HTTPS:
define( 'FORCE_SSL_ADMIN', true );
Atualizando via banco de dados
Se preferir atualizar diretamente no banco de dados:
UPDATE wp_options SET option_value = 'https://seusite.com'
WHERE option_name IN ('siteurl', 'home');
Usando o Plugin Really Simple SSL
Se você prefere uma solução automatizada, o plugin Really Simple SSL detecta o certificado SSL e configura o WordPress automaticamente.
- Instale e ative o plugin Really Simple SSL
- O plugin vai detectar o certificado SSL
- Clique em Ativar SSL
- O plugin vai configurar automaticamente o redirecionamento e corrigir a maioria dos problemas de mixed content
Embora o plugin facilite o processo, é recomendável entender as configurações manuais caso precise desativá-lo no futuro.
Corrigindo Mixed Content
O erro de mixed content acontece quando uma página HTTPS carrega recursos (imagens, scripts, folhas de estilo) via HTTP. Isso causa avisos no navegador e pode quebrar funcionalidades.
Identificando mixed content
Pelo navegador:
- Abra o site no Chrome
- Pressione F12 para abrir as ferramentas de desenvolvedor
- Vá na aba Console
- Procure por avisos de "Mixed Content"
Pelo SSL Labs:
- Acesse SSL Server Test
- Digite o domínio do seu site
- Aguarde a análise completa
- Verifique a seção de mixed content
Corrigindo via Search and Replace no banco de dados
A causa mais comum de mixed content são URLs antigas com http:// salvas no banco de dados. Para corrigir em massa:
Via WP-CLI:
wp search-replace 'http://seusite.com' 'https://seusite.com' --all-tables --dry-run
O parâmetro --dry-run mostra quantas substituições seriam feitas sem efetivamente alterá-las. Se o resultado parecer correto, execute sem esse parâmetro:
wp search-replace 'http://seusite.com' 'https://seusite.com' --all-tables
Via plugin Better Search Replace:
- Instale e ative o plugin Better Search Replace
- Em "Procurar por", digite http://seusite.com
- Em "Substituir por", digite https://seusite.com
- Selecione todas as tabelas
- Marque "Executar simulação" para testar primeiro
- Desmarque e execute a substituição real
Corrigindo mixed content em temas e plugins
Se o mixed content vem de URLs hardcoded no tema ou em plugins, edite os arquivos correspondentes. Procure por:
// Incorreto <img src="http://seusite.com/imagem.jpg"> // Correto (usar protocol-relative ou HTTPS) <img src="https://seusite.com/imagem.jpg"> // Melhor ainda (usar funções do WordPress) <img src="<?php echo esc_url( wp_get_attachment_url( $image_id ) ); ?>">
Forçando HTTPS via .htaccess
Para garantir que todas as requisições HTTP sejam redirecionadas para HTTPS, adicione as seguintes linhas no início do arquivo .htaccess :
# Forçar HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Se o seu site está atrás de um proxy ou load balancer (como Cloudflare), use esta variação:
# Forçar HTTPS (com proxy/Cloudflare)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Forçando HTTPS via Nginx
server {
listen 80;
server_name seusite.com www.seusite.com;
return 301 https://seusite.com$request_uri;
}
Testando o SSL do Seu Site
Após configurar tudo, é essencial testar se o SSL está funcionando corretamente.
SSL Labs Server Test
- Acesse https://www.ssllabs.com/ssltest/
- Digite o domínio do seu site
- Aguarde o teste completo
- Busque uma nota A ou A+
Why No Padlock
O site whynopadlock.com verifica mixed content e outros problemas que podem impedir a exibição do cadeado.
Testando no navegador
- Acesse o site no Chrome
- Clique no cadeado na barra de endereço
- Verifique se mostra "A conexão é segura"
- Abra as ferramentas de desenvolvedor (F12) e confira o Console por erros
Problemas Comuns com SSL e Como Resolver
ERR TOO MANY _ REDIRECTS
Esse erro geralmente ocorre quando o WordPress e o servidor tentam redirecionar para HTTPS ao mesmo tempo, criando um loop infinito.
Solução: Adicione no wp-config.php :
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
$_SERVER['HTTPS'] = 'on';
}
Certificado SSL não confiável
Se o navegador mostra que o certificado não é confiável, verifique se a cadeia de certificados está completa. O arquivo de certificado deve incluir o certificado do site e os certificados intermediários.
SSL expirado
Certificados Let's Encrypt expiram a cada 90 dias. Verifique se a renovação automática está configurada:
sudo certbot renew --dry-run
Se não estiver, adicione ao crontab:
0 0 1 * * /usr/bin/certbot renew --quiet
HSTS (HTTP Strict Transport Security)
Para segurança extra, ative o HSTS. Ele instrui navegadores a sempre usarem HTTPS para o seu domínio:
# No .htaccess Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Ou no Nginx:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
Atenção: Somente ative o HSTS após confirmar que o HTTPS funciona perfeitamente. Depois de ativado, os navegadores se recusam a acessar o site via HTTP por todo o período configurado.
Checklist Final de Configuração SSL
Antes de considerar a configuração concluída, verifique cada item:
- [ ] Certificado SSL instalado e válido
- [ ] WordPress configurado com URLs HTTPS
- [ ] Redirecionamento HTTP para HTTPS funcionando
- [ ] Mixed content corrigido (sem avisos no console)
- [ ] Search and Replace no banco de dados executado
- [ ] SSL Labs mostrando nota A ou A+
- [ ] FORCE SSL ADMIN ativado no wp-config.php
- [ ] Cadeado aparecendo no navegador
- [ ] Renovação automática do certificado configurada
- [ ] Google Search Console atualizado com a versão HTTPS
Leia também:
- Erros WordPress: Guia Completo Para Resolver os Problemas Mais Comuns
- WordPress Hackeado: O Que Fazer
Precisa de Ajuda para Configurar SSL no WordPress?
Configurar SSL pode parecer complicado, especialmente em servidores com configurações personalizadas ou sites com muito conteúdo legado em HTTP. A HOSTWP cuida da instalação do certificado SSL, correção de mixed content e toda a configuração do HTTPS no seu site WordPress. Do servidor ao site, a gente cuida de tudo. Conheça nossos planos de suporte WordPress .