Como Instalar um Certificado SSL no Seu Site WordPress
Um certificado SSL (Secure Sockets Layer / TLS) é uma ligação de protocolo criptográfico que encripta os dados em trânsito entre um servidor web e um browser. Num site WordPress, instalar SSL significa que cada pedido HTTP é redirecionado para HTTPS, o browser apresenta um cadeado, e dados sensíveis — credenciais de login, submissões de formulários, detalhes de pagamento — viajam por um canal encriptado em vez de texto simples.
Para o WordPress especificamente, a instalação de SSL envolve três camadas distintas: provisionar o certificado ao nível do servidor ou alojamento, configurar o próprio WordPress para servir todos os recursos via HTTPS, e eliminar avisos de conteúdo misto que silenciosamente quebram o contexto seguro. Se falhar qualquer uma destas etapas, o seu site irá mostrar um cadeado quebrado, acionar avisos de segurança do browser, ou falhar completamente a validação HTTPS.
Passo 1: Escolha o Tipo de Certificado SSL Correto
Nem todos os certificados SSL oferecem o mesmo nível de validação ou sinal de confiança. Selecionar o tipo errado é um erro comum que desperdiça dinheiro ou, na direção oposta, sub-protege um site que lida com transações sensíveis.
Comparação dos Níveis de Validação
| Tipo de Certificado | Nível de Validação | Tempo de Emissão | Ideal Para | Sinal de Confiança do Browser |
|---|---|---|---|---|
| — | — | — | — | — |
| **Domain Validated (DV)** | Apenas propriedade do domínio | Minutos a horas | Blogs, sites pessoais, ambientes de desenvolvimento | Ícone de cadeado |
| **Organization Validated (OV)** | Domínio + entidade legal | 1–3 dias úteis | Sites empresariais, portais SaaS | Cadeado + detalhes da organização no certificado |
| **Extended Validation (EV)** | Verificação legal + operacional completa | 1–5 dias úteis | E-commerce, banca, portais de alta confiança | Cadeado + nome da organização (alguns browsers) |
| **Wildcard DV/OV** | Domínio + todos os subdomínios | Minutos a dias | Implementações com múltiplos subdomínios | Cadeado |
| **Multi-Domain (SAN)** | Múltiplos domínios distintos | Minutos a dias | Agências que gerem múltiplas propriedades | Cadeado |
SSL Gratuito vs. Pago
Let's Encrypt emite certificados DV gratuitos e automatizados, válidos por 90 dias com suporte de renovação automática via protocolo ACME. É reconhecido por todos os principais browsers e é a escolha correta para a grande maioria dos sites WordPress. A janela de validade curta é intencional — força a automação e reduz a janela de risco de um certificado comprometido.
O SSL gratuito da Cloudflare funciona de forma diferente: encripta a ligação entre o visitante e o edge da Cloudflare, mas a ligação entre a Cloudflare e o seu servidor de origem pode ainda estar não encriptada, a menos que configure o modo Full (Strict) com um certificado de origem válido. Este é um caso limite frequentemente mal compreendido que cria uma falsa sensação de segurança.
Certificados pagos de CAs comerciais (DigiCert, Sectigo, GlobalSign) são necessários quando precisa de validação OV ou EV, uma garantia, ou uma configuração específica de SAN/Wildcard não suportada pelo Let's Encrypt.
Se precisar de adquirir um certificado de confiança para o seu domínio, a AlexHost fornece Certificados SSL com emissão e gestão simples diretamente a partir do painel da sua conta.
Passo 2: Instale o Certificado SSL ao Nível do Alojamento
O certificado deve ser instalado no servidor web antes de o WordPress poder servir respostas HTTPS. O método depende do seu ambiente de alojamento.
Instalar SSL via cPanel (Alojamento Partilhado e VPS)
O cPanel é o painel de controlo mais comum para ambientes partilhados e geridos. Se o seu alojamento utiliza AutoSSL (suportado pela Sectigo) ou suporta Let's Encrypt nativamente, um único clique provisiona e renova o certificado automaticamente.
Passos de instalação manual quando tem ficheiros de certificado de uma CA:
- Inicie sessão no cPanel e navegue até Segurança > SSL/TLS.
- Clique em Gerir Sites SSL.
- Selecione o domínio de destino no menu suspenso.
- Cole o conteúdo de três ficheiros nos campos correspondentes:
- Certificado (CRT): O certificado assinado pela sua CA.
- Chave Privada (KEY): Gerada durante a criação do CSR — nunca partilhe esta chave.
- Pacote de Autoridade de Certificação (CABUNDLE): Os certificados da cadeia intermédia.
- Clique em Instalar Certificado.
Se estiver a executar o WordPress num VPS com cPanel, o AutoSSL normalmente trata disto automaticamente para todos os domínios no WHM. Verifique em WHM > SSL/TLS > Gerir AutoSSL que o domínio está coberto e que o certificado não está num estado pendente ou com falha.
Instalar SSL num VPS com Apache (Método Manual)
Num VPS Linux autogerido a executar Apache, o processo requer editar diretamente a configuração do virtual host.
Instalar Certbot (cliente Let's Encrypt) no Debian/Ubuntu:
sudo apt update
sudo apt install certbot python3-certbot-apache -yObter e instalar o certificado automaticamente:
sudo certbot --apache -d yourdomain.com -d www.yourdomain.comO Certbot modifica a configuração do seu virtual host Apache, instala o certificado e configura um cron job ou temporizador systemd para renovação automática. Verifique se o temporizador de renovação está ativo:
sudo systemctl status certbot.timerPara Nginx num VPS:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.comInstalação manual de certificado no Apache (ao utilizar um certificado CA pago):
Coloque os seus ficheiros de certificado num diretório seguro e edite o seu virtual host:
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/yourdomain.crt
SSLCertificateKeyFile /etc/ssl/private/yourdomain.key
SSLCertificateChainFile /etc/ssl/certs/yourdomain_ca_bundle.crt
</VirtualHost>Reinicie o Apache para aplicar:
sudo systemctl restart apache2Se estiver a gerir uma instalação WordPress de alto tráfego num Servidor Dedicado, tem controlo total sobre conjuntos de cifras, cabeçalhos HSTS e OCSP stapling — configurações que não são possíveis em alojamento partilhado.
Instalar SSL num VPS com Nginx (Método Manual)
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/ssl/certs/yourdomain.crt;
ssl_certificate_key /etc/ssl/private/yourdomain.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 1.1.1.1 valid=300s;
root /var/www/html;
index index.php;
}Recarregue o Nginx após editar:
sudo nginx -t && sudo systemctl reload nginxPasso 3: Force HTTPS ao Nível do Servidor com um Redirecionamento 301
Antes de tocar nas definições do WordPress, aplique o redirecionamento de HTTP para HTTPS ao nível do servidor. Isto é mais fiável do que depender apenas do WordPress ou de um plugin, e impede que o browser carregue alguma vez a versão HTTP.
Apache: Redirecionamento .htaccess
Abra o seu ficheiro .htaccess (localizado na raiz do seu WordPress, tipicamente /var/www/html/.htaccess ou acessível via cPanel File Manager) e adicione o seguinte bloco acima das regras de reescrita existentes do WordPress:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Armadilha crítica: Se colocar este bloco *depois* do marcador # BEGIN WordPress, pode ser substituído pelas atualizações do núcleo do WordPress. Coloque sempre as regras de redirecionamento ao nível do servidor acima do bloco gerido pelo WordPress.
Nginx: Redirecionamento do Bloco de Servidor
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}Cabeçalho HSTS (Avançado, Recomendado)
Assim que tiver a certeza de que a sua configuração HTTPS está estável, adicione um cabeçalho HTTP Strict Transport Security para instruir os browsers a nunca tentarem uma ligação HTTP:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"Aviso: Não ative o HSTS com preload até ter a certeza de que cada subdomínio também tem um certificado SSL válido. O preloading é irreversível a curto prazo e irá quebrar subdomínios que não têm HTTPS configurado.
Passo 4: Atualize o WordPress para Servir Todo o Conteúdo via HTTPS
Com o certificado instalado e o redirecionamento ao nível do servidor em vigor, o próprio WordPress deve ser configurado para gerar URLs HTTPS para todos os links internos, recursos e endpoints de API.
Opção A: Atualizar os URLs do Site WordPress Manualmente
- Vá a Definições > Geral no painel de administração do WordPress.
- Altere tanto o Endereço WordPress (URL) como o Endereço do Site (URL) de
http://parahttps://. - Clique em Guardar Alterações.
O WordPress irá terminar a sua sessão imediatamente após guardar. Inicie sessão novamente utilizando o URL HTTPS.
Opção B: Atualizar URLs via wp-config.php
Se estiver bloqueado fora do painel de administração ou preferir uma abordagem baseada em código, adicione estas linhas ao wp-config.php antes da linha /* That's all, stop editing! */:
define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');Opção C: Atualizar URLs HTTP Codificados na Base de Dados
O WordPress armazena URLs na base de dados, incluindo dados serializados em tabelas de meta de publicações e opções. Uma simples pesquisa e substituição no SQL bruto pode corromper arrays serializados. Utilize o WP-CLI para uma substituição segura e consciente da serialização:
wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --skip-columns=guid --all-tablesO sinalizador --skip-columns=guid preserva os GUIDs das publicações, que não devem ser alterados de acordo com as melhores práticas do WordPress. Execute isto a partir do diretório raiz do WordPress com as credenciais de base de dados apropriadas configuradas em wp-config.php.
Alternativamente, o plugin Better Search Replace realiza a mesma operação através da interface de administração com suporte de serialização.
Passo 5: Corrija Avisos de Conteúdo Misto
Um aviso de conteúdo misto ocorre quando uma página HTTPS carrega um ou mais recursos (imagens, scripts, folhas de estilo, iframes) via HTTP. Isto quebra o contexto seguro, suprime o cadeado e, em alguns casos, faz com que os browsers bloqueiem completamente o recurso.
Diagnosticar Conteúdo Misto
Abra as ferramentas de desenvolvimento do seu browser (F12), vá ao separador Consola e procure avisos prefixados com Mixed Content:. A mensagem irá identificar o URL exato do recurso que está a causar o problema.
Alternativamente, utilize a ferramenta Why No Padlock? ou execute uma análise do SSL Labs para obter um relatório completo.
Corrigir Conteúdo Misto: Método com Plugin
Really Simple SSL é o plugin mais utilizado para este fim. Após a ativação:
- Define a variável de servidor
HTTPSpara forçar o WordPress a reconhecer a ligação segura. - Adiciona um filtro de conteúdo baseado em JavaScript para reescrever URLs HTTP em tempo real.
- Opcionalmente limpa as regras de reescrita e atualiza o URL do site.
SSL Insecure Content Fixer oferece um controlo mais granular, permitindo escolher entre uma substituição simples de buffer de saída e uma abordagem mais profunda de hook de filtro WordPress — útil quando o método JavaScript do Really Simple SSL causa problemas de renderização com determinados construtores de páginas.
Corrigir Conteúdo Misto: Método Manual
Para URLs HTTP codificados em ficheiros de tema ou plugins personalizados, pesquise no diretório do seu tema:
grep -r "http://yourdomain.com" /var/www/html/wp-content/themes/your-theme/Substitua todas as ocorrências por https:// ou, melhor ainda, utilize URLs relativos ao protocolo (//yourdomain.com/...) para recursos de terceiros onde não pode garantir a disponibilidade de HTTPS.
Para média incorporada carregada antes da migração SSL, execute o comando WP-CLI search-replace do Passo 4 se ainda não o fez, pois os URLs de anexos de imagens são armazenados nas tabelas wp_posts e wp_postmeta.
Passo 6: Valide a Instalação SSL
Nunca assuma que a instalação foi bem-sucedida — verifique-a sistematicamente.
Teste SSL Labs
Navegue até https://www.ssllabs.com/ssltest/ e introduza o seu domínio. Um site WordPress corretamente configurado deve obter a classificação A ou A+. Uma classificação A+ requer:
- Suporte para TLS 1.2 e 1.3 com TLS 1.0 e 1.1 desativados.
- Um conjunto de cifras forte (sem RC4, sem 3DES).
- Cabeçalho HSTS presente.
- OCSP stapling ativado.
- Sem problemas na cadeia (certificados intermédios corretamente instalados).
Verificação no Browser
Clique no ícone de cadeado na barra de endereço. No Chrome, navegue até Ligação segura > Certificado válido para confirmar que o emissor, as datas de validade e os Subject Alternative Names (SANs) correspondem ao seu domínio.
Verificação por Linha de Comandos
openssl s_client -connect yourdomain.com:443 -servername yourdomain.comIsto apresenta a cadeia de certificados completa, a cifra negociada e a versão TLS. Procure Verify return code: 0 (ok) para confirmar que a cadeia é de confiança.
Verificar a Expiração do Certificado
echo | openssl s_client -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -datesPara certificados Let's Encrypt, verifique também se a simulação de renovação automática funciona:
sudo certbot renew --dry-runPasso 7: Reforço Pós-Instalação e Limpeza de SEO
Atualizar a Google Search Console
Adicione a versão HTTPS do seu site como uma nova propriedade na Google Search Console. O Google trata http:// e https:// como propriedades separadas. Submeta o seu sitemap HTTPS (https://yourdomain.com/sitemap.xml) para acelerar o recrawl dos URLs atualizados.
Atualizar o Seu Sitemap e Tags Canónicas
Certifique-se de que o seu sitemap XML (gerado pelo Yoast SEO, Rank Math ou similar) produz exclusivamente URLs HTTPS. Verifique se as tags canónicas no <head> do seu tema referenciam HTTPS. Uma tag canónica a apontar para a versão HTTP de uma página irá confundir os crawlers mesmo que o redirecionamento 301 esteja em vigor.
Notificar o Google da Alteração
Na Google Search Console, utilize a ferramenta Mudança de Endereço apenas se tiver migrado para um domínio completamente novo. Para a migração de HTTP para HTTPS no mesmo domínio, os redirecionamentos 301 tratam da transferência de sinal — não é necessária nenhuma ferramenta de mudança de endereço.
Considerações sobre o WordPress Multisite
Numa rede WordPress Multisite, deve atualizar os valores siteurl e home nas tabelas wp_siteurl e wp_blogs para cada subsite, não apenas para o site principal. O WP-CLI trata disto por site:
wp search-replace 'http://subdomain.yourdomain.com' 'https://subdomain.yourdomain.com' --url=subdomain.yourdomain.com --all-tablesMatriz de Decisão Prática: Qual Método SSL Utilizar
| O Seu Ambiente de Alojamento | Método SSL Recomendado | Renovação | Esforço |
|---|---|---|---|
| — | — | — | — |
| Alojamento partilhado com cPanel | AutoSSL ou Let's Encrypt via cPanel | Automática | Mínimo |
| [VPS Hosting](https://alexhost.com/pt-pt/vps/) com Apache/Nginx | Certbot (Let's Encrypt) | Automática via temporizador systemd | Baixo |
| VPS com cPanel/WHM | AutoSSL no WHM | Automática | Mínimo |
| [Servidor Dedicado](https://alexhost.com/pt-pt/dedicated-servers/) | Certbot ou certificado CA pago | Manual ou automatizada | Médio |
| Domínio com proxy Cloudflare | SSL Cloudflare + certificado de origem | Automática (Cloudflare) | Baixo (mas verifique o modo Full Strict) |
| Site de e-commerce / alta confiança | Certificado OV ou EV pago | Renovação manual anual | Alto |
Principais Conclusões Técnicas
- A instalação do certificado e a configuração do WordPress são passos separados. Um certificado instalado ao nível do servidor não faz automaticamente com que o WordPress gere URLs HTTPS. Ambos devem ser configurados.
- O conteúdo misto é a falha mais comum após a migração. Execute uma pesquisa e substituição na base de dados com WP-CLI antes de ativar qualquer plugin SSL para detetar URLs HTTP codificados na origem.
- A renovação automática do Let's Encrypt deve ser verificada, não assumida. Execute
certbot renew --dry-runapós a configuração inicial e monitorize as datas de expiração. Uma renovação falhada quebra silenciosamente o seu site 90 dias depois. - O HSTS é uma porta de sentido único. Não defina um
max-agelongo nem ativepreloadaté que cada subdomínio tenha um certificado válido e esteja comprometido com HTTPS permanentemente. - O SSL gratuito da Cloudflare não é encriptado de ponta a ponta por defeito. Defina o modo SSL/TLS para Full (Strict) e instale um certificado de origem no seu servidor para fechar a lacuna.
- Em alojamento partilhado, verifique se o SSL do seu fornecedor de alojamento cobre tanto o domínio apex (
yourdomain.com) como o subdomíniowww. Um certificado emitido apenas para um deles irá produzir um erro de incompatibilidade de nome no outro. - Os dados serializados nas bases de dados WordPress não podem ser atualizados com segurança com
REPLACE()SQL bruto. Utilize sempre WP-CLI ou um plugin com suporte de serialização.
Para sites alojados em Alojamento Web Partilhado, o caminho mais rápido para SSL é ativar o AutoSSL ou Let's Encrypt através do cPanel — todo o processo demora menos de cinco minutos e não requer acesso à linha de comandos. Para implementações mais complexas que requerem configuração personalizada de cifras, OCSP stapling ou certificados multi-domínio, um VPS com um painel de controlo configurável fornece o acesso ao nível do servidor necessário.
FAQ
A instalação de um certificado SSL melhora diretamente o meu posicionamento no Google?
O Google confirmou o HTTPS como um sinal de classificação em 2014. O impulso direto no posicionamento é modesto, mas os benefícios indiretos — taxa de rejeição reduzida devido a avisos de segurança do browser, elegibilidade para HTTP/2 e HTTP/3, e confiança do utilizador — têm um efeito cumulativo mensurável no desempenho orgânico.
Qual é a diferença entre SSL e TLS?
SSL (Secure Sockets Layer) é o predecessor descontinuado do TLS (Transport Layer Security). Todos os certificados modernos utilizam TLS 1.2 ou 1.3. O termo “certificado SSL” persiste como abreviatura da indústria, mas nenhum browser ou servidor utilizou SSL real desde 2015. Se o seu servidor ainda aceita SSLv3 ou TLS 1.0, desative-os imediatamente — são vulneráveis aos ataques POODLE e BEAST, respetivamente.
Por que razão o meu site ainda mostra “Não Seguro” após instalar o certificado?
A causa mais comum é um erro de conteúdo misto: pelo menos um recurso na página está a carregar via HTTP. Abra as ferramentas de desenvolvimento do browser, verifique a Consola para avisos de conteúdo misto e utilize WP-CLI search-replace ou o plugin Really Simple SSL para reescrever os URLs problemáticos. Uma causa secundária é o URL do Site WordPress em Definições > Geral ainda apontar para http://.
Como renovo um certificado Let's Encrypt antes de expirar?
O Certbot instala um temporizador systemd ou cron job que tenta a renovação automaticamente quando o certificado está a 30 dias de expirar. Para forçar uma renovação imediata, execute sudo certbot renew --force-renewal. Para testar sem fazer alterações, execute sudo certbot renew --dry-run. Verifique o registo de renovação em /var/log/letsencrypt/letsencrypt.log se a renovação falhar.
Posso instalar SSL no WordPress sem acesso ao servidor ou ao cPanel?
Sim, através da Cloudflare. Adicione o seu domínio à Cloudflare, aponte os seus nameservers para os da Cloudflare e ative a definição SSL/TLS. A ligação visitante-Cloudflare fica encriptada imediatamente. No entanto, defina o modo para Full (Strict) e instale um Certificado de Origem Cloudflare no seu servidor para também encriptar a ligação Cloudflare-origem. Sem isto, a ligação entre a Cloudflare e o seu servidor permanece não encriptada, o que é uma lacuna de segurança significativa em qualquer site que lide com dados de utilizadores.
