Como Configurar SSL/HTTPS no WordPress

Tutorial completo para configurar SSL e HTTPS no WordPress. Aprenda a instalar certificado SSL, corrigir mixed content e forçar HTTPS.

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

  1. O navegador solicita uma conexão segura ao servidor
  2. O servidor envia seu certificado SSL
  3. O navegador valida o certificado com a autoridade certificadora
  4. Uma chave de sessão criptografada é criada
  5. 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

  1. Acesse o cPanel da sua hospedagem
  2. Procure por SSL/TLS ou Let's Encrypt na seção de segurança
  3. Selecione o domínio desejado
  4. Clique em Emitir ou Instalar
  5. Aguarde a validação (geralmente leva poucos minutos)
  6. O certificado será renovado automaticamente a cada 90 dias

Instalando via Plesk

  1. Acesse o painel Plesk
  2. Vá em Websites & Domains
  3. Clique em SSL/TLS Certificates
  4. Selecione Let's Encrypt
  5. Marque a opção de renovação automática
  6. 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.

  1. Instale e ative o plugin Really Simple SSL
  2. O plugin vai detectar o certificado SSL
  3. Clique em Ativar SSL
  4. 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:

  1. Abra o site no Chrome
  2. Pressione F12 para abrir as ferramentas de desenvolvedor
  3. Vá na aba Console
  4. Procure por avisos de "Mixed Content"

Pelo SSL Labs:

  1. Acesse SSL Server Test
  2. Digite o domínio do seu site
  3. Aguarde a análise completa
  4. 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:

  1. Instale e ative o plugin Better Search Replace
  2. Em "Procurar por", digite http://seusite.com
  3. Em "Substituir por", digite https://seusite.com
  4. Selecione todas as tabelas
  5. Marque "Executar simulação" para testar primeiro
  6. 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

  1. Acesse https://www.ssllabs.com/ssltest/
  2. Digite o domínio do seu site
  3. Aguarde o teste completo
  4. 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

  1. Acesse o site no Chrome
  2. Clique no cadeado na barra de endereço
  3. Verifique se mostra "A conexão é segura"
  4. 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:


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 .

Artigos relacionados