bg-tutorials

Como Configurar um Certificado SSL no WordPress e Mudar para HTTPS

Colocar um certificado SSL num site WordPress requer três passos: instalar o certificado no seu servidor, apontar o WordPress para as versões HTTPS dos seus URLs e redirecionar o tráfego HTTP antigo. A maioria dos hosts trata agora do primeiro passo por si, e desde a versão 5.7 o WordPress trata sozinho de uma grande parte do segundo. Este guia cobre os três passos, para certificados gratuitos e pagos, e resolve os erros que costumam surgir depois.

Resposta rápida: instale um certificado SSL através do painel de controlo do seu alojamento e, em seguida, abra Definições > Geral no WordPress e altere tanto o Endereço do WordPress (URL) como o Endereço do site (URL) para as respetivas versões https. Termine adicionando um redirecionamento 301 para que os pedidos HTTP caiam em HTTPS.

SSL (abreviatura de Secure Sockets Layer, embora todos os certificados emitidos atualmente utilizem na verdade TLS) é o que transforma http:// em https:// e remove o rótulo “Não Seguro” da barra de endereço. Se quiser primeiro o contexto, leia o que é um certificado SSL. Caso contrário, comece pela tabela abaixo.

Qual método se adequa à sua configuração

Existem três formas de adicionar SSL ao WordPress, e a mais indicada depende quase inteiramente do seu alojamento. Encontre a sua configuração e avance para esse método.

A sua configuraçãoUse este métodoDuração aproximada
Alojamento WordPress geridoNada a instalar. O certificado já costuma estar ativo, por isso avance para mudar o WordPress para HTTPS5 minutos
cPanel ou um alojamento partilhado semelhanteMétodo 1, o AutoSSL gratuito do host10 minutos
Um host sem ferramenta de SSL, ou prefere que seja feito por siMétodo 2, o assistente do plugin10 a 15 minutos
VPS, servidor dedicado, ou um certificado pagoMétodo 3, instalação manual30 minutos mais o tempo de validação
Cloudflare colocado à frente do seu siteMétodo 1 ou 3, depois defina o SSL do Cloudflare como Full (strict). Veja a resolução de problemas15 minutos

Seja qual for o caminho escolhido, faça primeiro uma cópia de segurança do site e, se tiver um ambiente de teste (staging), aplique a alteração aí antes de tocar na produção.

Precisa de um certificado SSL para o WordPress?

Sim, e para a maioria das pessoas o motivo é o que já conseguem ver: o Chrome, o Firefox, o Safari e o Edge marcam todas as páginas HTTP simples como Não Seguro na barra de endereço. Esse rótulo aparece em todas as páginas de um site sem certificado, incluindo o formulário de início de sessão.

Três razões práticas para resolver isto:

  • Credenciais e dados de formulários viajam em texto simples. Sem certificado, qualquer pessoa na mesma rede pode ler o que os visitantes submetem, incluindo a sua própria palavra-passe do WordPress.
  • Os pagamentos exigem isso. Se utiliza o WooCommerce, ou aceita quaisquer dados de cartão, o HTTPS não é opcional. As passarelas de pagamento recusam-se a funcionar sobre HTTP.
  • O Google utiliza o HTTPS como sinal de posicionamento. É um sinal real, mas leve, por isso trate o argumento de SEO como um bónus e não como a razão principal. O aviso do navegador é que é o motivo.

Que certificado SSL deve usar um site WordPress?

Comece pela opção gratuita, porque para uma grande parte dos sites WordPress essa é genuinamente a resposta certa. A maioria dos hosts emite automaticamente certificados Let’s Encrypt gratuitos, e um certificado gratuito encripta o tráfego exatamente tão bem como um pago. A encriptação é idêntica. O que difere entre um certificado SSL WordPress e outro é o que a autoridade de certificação verificou antes de o emitir, e o que obtém quando algo corre mal.

Níveis de validação

TipoO que a CA verificaEmitido emAdequa-se a
Domain Validation (DV)Que controla o domínioMinutosBlogues, sites institucionais simples, a maioria das instalações WordPress
Organization Validation (OV)O domínio mais a sua organização registada1 a 3 dias úteisSites empresariais, áreas de membros, portais de clientes
Extended Validation (EV)Uma verificação legal e operacional completa da empresa1 a 5 dias úteisLojas que processam pagamentos, finanças, tudo onde a identidade importe

Se o seu site funciona com subdomínios, por exemplo uma loja em store.example.com e um blogue em blog.example.com, um certificado wildcard cobre todos eles com um único certificado em vez de um por subdomínio. Não tem a certeza de que tipo se aplica? O SSL Wizard ajuda a determiná-lo em poucas perguntas.

Quando um certificado gratuito deixa de ser suficiente

Os certificados gratuitos são apenas DV, duram 90 dias e não incluem suporte nem garantia. Isso é adequado para um blogue pessoal. Torna-se um problema em quatro situações:

  • Aceita pagamentos. Os certificados pagos incluem uma garantia que cobre perdas se o próprio certificado falhar. Os gratuitos não incluem nenhuma.
  • Os seus visitantes precisam de saber quem é. Um certificado DV apenas prova que alguém controla o domínio. Os certificados OV e EV colocam os detalhes verificados da sua organização dentro do certificado.
  • Utiliza subdomínios. A emissão gratuita de wildcard é possível mas complicada, e normalmente exige automação de DNS que o seu host pode não oferecer.
  • A renovação não é automatizada. Um certificado de 90 dias que ninguém renova derruba o site tão certamente como a ausência de certificado. Se o seu host não renova automaticamente, um certificado pago com validade mais longa dá menos trabalho, não mais.

Método 1: obter um certificado SSL gratuito do seu host

Esta é a via mais rápida e a que deve experimentar primeiro. Quase todos os hosts oferecem agora certificados Let’s Encrypt gratuitos, muitas vezes já ativados.

  • Abra o painel de controlo do seu alojamento e procure por SSL/TLS, Let’s Encrypt ou AutoSSL. No cPanel, encontra-se em Security.
  • Selecione o seu domínio e emita o certificado. Inclua tanto o domínio principal como a versão com www, caso contrário um deles apresentará um aviso de incompatibilidade de nome.
  • Confirme que a renovação automática está ativada. Este é o passo que as pessoas costumam saltar.

Não tem nenhum painel de alojamento, porque utiliza o seu próprio VPS ou servidor dedicado? Use o Certbot, o cliente Let’s Encrypt, que emite o certificado a partir da linha de comandos e configura o seu próprio calendário de renovação.

Os certificados Let’s Encrypt são válidos por 90 dias, e a renovação deve acontecer automaticamente, normalmente cerca de 30 dias antes de expirar. Quando essa automação falha, e isso acontece, geralmente depois de um domínio mudar ou um registo DNS ser alterado, o site continua bem durante semanas e depois passa a “Não Seguro” sem aviso. Coloque um lembrete no seu calendário para a primeira data de renovação esperada e verifique o certificado com o SSL Checker depois de essa data ter passado. Se a data de expiração avançou, a renovação está a funcionar.

Método 2: instalar SSL no WordPress com um plugin

O plugin a que a maioria das pessoas recorre é o Really Simple Security. Chamou-se Really Simple SSL até setembro de 2024, quando a versão 9 o renomeou à medida que o seu conjunto de funcionalidades gratuitas cresceu para além da configuração de SSL. Tem mais de três milhões de instalações ativas.

O que mudou juntamente com o nome é relevante aqui: o plugin já não se limita a forçar o redirecionamento, também pode obter o certificado por si através de um assistente Let’s Encrypt. Assim, cobre todo o trabalho quando o seu host não o faz.

  • Instale e ative o Really Simple Security em Plugins > Adicionar novo plugin.
  • Siga o processo de integração que se abre, ou aceda ao novo item Security que o plugin adiciona à barra lateral de administração. Tutoriais mais antigos referem Definições > SSL, que é onde o plugin se encontrava antes da mudança de nome. Se já houver um certificado instalado no servidor, o plugin deteta-o.
  • Se não houver certificado, escolha Install SSL certificate e siga o assistente para obter um certificado Let’s Encrypt gratuito.
  • Selecione Activate SSL. O plugin atualiza os URLs do seu site, configura o redirecionamento e recarrega o painel através de HTTPS.

Vale a pena conhecer uma ressalva antes de se comprometer. Um plugin que força HTTPS fá-lo em PHP, em cada pedido. Um redirecionamento escrito na configuração do servidor acontece antes de o WordPress carregar, o que é mais rápido e continua a funcionar mesmo que o plugin seja desativado. Se se sentir confortável a editar ficheiros do servidor, faça a mudança manualmente e mantenha o plugin fora do caminho crítico.

Método 3: instalar um certificado SSL manualmente

Esta é a via para um certificado pago, ou para qualquer servidor sem uma ferramenta de um clique. Em alojamento partilhado, verifique primeiro se o seu plano permite instalar certificados de terceiros; alguns hosts económicos ainda restringem isto ou cobram por isso.

  • Gere um CSR. O pedido de assinatura de certificado transporta os detalhes do seu domínio e organização para a autoridade de certificação. Use o nosso gerador de CSR, ou siga os guias de CSR para o seu servidor específico.
  • Envie o CSR para a autoridade de certificação e conclua a validação. O DV termina em minutos, o OV e o EV demoram dias.
  • Instale os ficheiros. Receberá o próprio certificado mais um ou mais certificados intermédios. No cPanel, cole-os em SSL/TLS > Manage SSL sites, seguindo o guia de instalação para cPanel. Outras plataformas estão cobertas nos guias de instalação de SSL.
  • Verifique com o SSL Checker antes de mexer no WordPress.

Preste atenção aos certificados intermédios. Se instalar o certificado principal mas omitir a cadeia, a maioria dos navegadores de computador continuará a mostrar um cadeado, porque armazenam em cache certificados intermédios que já viram noutros locais. Os navegadores móveis, as passarelas de pagamento e qualquer coisa que aceda ao seu site através de uma API vão falhar. Um site que “funciona no Chrome mas quebra no checkout” é, muitas vezes, uma cadeia incompleta, e o SSL Checker irá reportá-lo.

Utilizar o WordPress Multisite acrescenta alguns passos, abordados no guia de SSL para Multisite.

Mudar o seu site WordPress de HTTP para HTTPS

O certificado está no servidor. O WordPress ainda não sabe disso. É aqui que muitos guias o enviam para executar uma pesquisa e substituição na base de dados antes de qualquer outra coisa, e para a maioria dos sites isso já não é necessário há anos.

O que o WordPress faz por conta própria

Desde o WordPress 5.7, lançado em março de 2021, o núcleo deteta se o seu ambiente suporta HTTPS e reporta isso em Ferramentas > Saúde do site > Estado, na secção Estado do HTTPS. Quando o HTTPS está disponível, essa secção oferece um botão que muda o site num único clique.

Mais importante ainda, uma vez que o Endereço do site (URL) e o Endereço do WordPress (URL) estejam ambos em https, o WordPress reescreve os URLs inseguros no seu conteúdo à medida que renderiza a página. Imagens, links e embeds que foram guardados com endereços http no seu próprio domínio são servidos via https sem que edite a base de dados. Esse é o passo que os tutoriais mais antigos mandam fazer manualmente.

Vale a pena compreender isto com precisão, porque determina o que ainda tem de fazer: a reescrita acontece na saída, através de filtros associados ao conteúdo à medida que é apresentado. A sua base de dados continua a guardar os URLs http antigos. Para os visitantes, o resultado é idêntico, é por isso que a migração funciona sem uma pesquisa e substituição, mas os dados armazenados permanecem inalterados. Isso importa no dia em que exportar o site, o mudar para outro host, ou consultar a base de dados diretamente, e é a razão pela qual uma pesquisa e substituição continua a valer a pena fazer eventualmente, em vez de nunca.

Alterar as duas definições de URL

Se a Saúde do site não oferecer o botão de um clique, ou preferir fazê-lo explicitamente, abra Definições > Geral. Há dois campos e ambos têm de mudar:

  • Endereço do WordPress (URL), onde residem os ficheiros do WordPress.
  • Endereço do site (URL), o endereço que os visitantes digitam.

Altere http:// para https:// em ambos e guarde. Alterar apenas um deles é a forma mais comum de se fechar fora do painel de administração. Se isso acontecer, pode definir ambos a partir do wp-config.php via FTP:

define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );

Adicione essas linhas acima da linha que diz “That’s all, stop editing”, e substitua example.com pelo seu domínio. Note que, enquanto estas constantes estiverem definidas, os campos em Definições > Geral tornam-se apenas de leitura.

Quando ainda precisa de uma pesquisa e substituição

A reescrita do núcleo cobre o conteúdo renderizado. Não chega a todo o lado, por isso uma pesquisa e substituição continua a ser a solução para:

  • URLs codificados diretamente em ficheiros do tema ou em functions.php.
  • Definições de plugins guardadas como dados serializados, razão pela qual nunca deve executar uma simples pesquisa e substituição em SQL.
  • Linhas de opções, campos personalizados e conteúdo de widgets escrito por construtores de páginas.

Use o Better Search Replace, que trata corretamente os dados serializados e tem um modo de simulação (dry-run), ou o WP-CLI:

wp search-replace 'http://example.com' 'https://example.com' --all-tables --dry-run

Leia a saída da simulação e depois repita o comando sem –dry-run para o aplicar. Faça primeiro uma cópia de segurança da base de dados.

Forçar HTTPS no WordPress com um redirecionamento 301

O seu site agora responde em https, mas ainda responde também em http, e todos os links e favoritos antigos apontam para lá. Um redirecionamento HTTPS permanente envia tanto os visitantes como os motores de busca para a versão segura e transmite os sinais de posicionamento dos URLs antigos. Configure-o ao nível do servidor em vez de em PHP sempre que possível.

Apache

Adicione isto no início do ficheiro .htaccess na raiz do seu WordPress, acima do bloco do WordPress:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

A flag R=301 é o que o torna permanente. Uma regra escrita como [R,L] emite um 302 temporário, o que é um erro que vale a pena verificar se copiou um redirecionamento de um guia mais antigo.

Nginx

O Nginx não tem .htaccess e não compreende regras de reescrita escritas para o Apache. Em vez disso, edite o bloco de servidor na configuração do seu site:

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

Teste a configuração com nginx -t, depois recarregue com systemctl reload nginx.

Forçar HTTPS apenas no painel de administração

Para proteger especificamente os inícios de sessão e a área de administração, adicione isto ao wp-config.php:

define( 'FORCE_SSL_ADMIN', true );

Isto cobre o wp-admin e a página de início de sessão. Não redireciona a parte frontal do site, por isso complementa um redirecionamento ao nível do servidor em vez de o substituir.

HSTS, assim que tudo funcionar

O HSTS diz aos navegadores para recusarem por completo o HTTP simples para o seu domínio, o que fecha a lacuna entre o primeiro pedido e o redirecionamento. No Apache:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Adicione isto apenas depois de o HTTPS ter estado estável durante algum tempo, e deixe a diretiva de preload desativada no início. O preload é difícil de reverter rapidamente, e se algo num subdomínio ainda não estiver em HTTPS, torna-se inacessível.

Corrigir o que a mudança deixa para trás

Conteúdo misto

Conteúdo misto é uma página servida via HTTPS que ainda carrega imagens, scripts, folhas de estilo ou tipos de letra via HTTP. Os navegadores dividem isso agora em dois: recursos atualizáveis, sobretudo imagens e media, que são discretamente atualizados para HTTPS antes de serem pedidos, e recursos bloqueáveis, como scripts e folhas de estilo, que se recusam totalmente a carregar. É por isso que uma página com conteúdo misto pode parecer apenas sem cadeado, ou pode chegar completamente sem estilo.

No WordPress, as fontes habituais são um URL de imagem codificado diretamente num ficheiro do tema, um script externo carregado via HTTP e um CDN ainda configurado para HTTP. Abra a consola do navegador, que indica o recurso problemático, e corrija-o na origem. O nosso guia sobre como corrigir conteúdo misto cobre o diagnóstico em detalhe.

Caches e CDN

Limpe a cache de páginas e o CDN depois da mudança. Uma cópia em cache de uma página HTTP continuará a servir a marcação antiga e fará com que uma migração concluída pareça mal-sucedida.

E-mails e modelos transacionais

Este ponto passa despercebido quase universalmente. Os e-mails de encomenda do WooCommerce, mensagens de redefinição de palavra-passe, modelos de fatura e rodapés de newsletter costumam conter links HTTP codificados diretamente, e ficam fora das tabelas que uma pesquisa e substituição normal alcança. Envie-se a si próprio uma encomenda de teste e uma redefinição de palavra-passe de teste, e depois verifique para onde os links realmente apontam.

Resolução de problemas de SSL no WordPress

SintomaCausa habitualSolução
Ciclo infinito de redirecionamentos, ERR_TOO_MANY_REDIRECTSSSL do Cloudflare definido como Flexible. O Cloudflare comunica com o seu servidor via HTTP, o seu servidor redireciona para HTTPS, o Cloudflare devolve-oDefina o modo de encriptação SSL/TLS do Cloudflare como Full (strict) e mantenha um certificado válido na origem
Fechado fora do wp-admin depois da mudançaApenas um dos dois campos de URL foi alteradoDefina WP_HOME e WP_SITEURL no wp-config.php via FTP
Cadeado ausente apenas em algumas páginasConteúdo misto nessas páginasEncontre o recurso HTTP na consola do navegador, corrija-o na origem
Site estava bem, ficou “Não Seguro” semanas depoisUm certificado Let’s Encrypt expirou porque a renovação falhouReemita, depois confirme a renovação automática no seu painel de controlo
Funciona no navegador, falha numa aplicação ou passarela de pagamentoCertificados intermédios em falta na cadeiaInstale o pacote completo da CA, depois verifique novamente com o SSL Checker
Aviso de incompatibilidade de nome no www ou no domínio principalO certificado cobre apenas um dos doisReemita o certificado para cobrir ambos os nomes; um redirecionamento por si só não resolve isto, o aviso aparece antes de qualquer redirecionamento ser executado

Se o certificado está instalado e o site continua a ser reportado como inseguro, os guias de erros de SSL cobrem códigos de erro específicos de navegadores.

Depois da migração: lista de verificação de SEO e o que esperar

  • Adicione a propriedade HTTPS no Google Search Console. Uma propriedade HTTP não reporta sobre URLs HTTPS. Adicione a nova e mantenha a antiga, ou use uma propriedade de Domínio, que cobre ambas. Se usar o Bing Webmaster Tools, atualize-o também aí.
  • Reenvie o seu sitemap XML com os URLs https.
  • Verifique se as tags canónicas apontam para https. A maioria dos plugins de SEO atualiza automaticamente assim que os URLs do site mudam, mas confirme no código-fonte da página.
  • Atualize as definições de propriedade do Google Analytics e Ads, e qualquer serviço de terceiros que armazene o URL do seu site.
  • Atualize os links internos onde forem absolutos. Os links relativos não precisam de nada.

O que é normal depois disto, porque preocupa quem nunca o fez: o Search Console mostrará as suas impressões divididas entre as propriedades HTTP e HTTPS durante algum tempo à medida que o Google volta a rastrear o site, e o posicionamento costuma oscilar durante algumas semanas antes de estabilizar. O Google trata uma mudança de HTTP para HTTPS como uma mudança de site com alterações de URL, por isso alguma oscilação é esperada e não é um sinal de que algo correu mal. Desde que os redirecionamentos 301 estejam em vigor e todas as páginas resolvam corretamente, não há mais nada a fazer além de esperar.

Vale a pena dizer isto claramente: voltar atrás de HTTPS para HTTP quase nunca é a solução certa para um problema. Significa uma segunda mudança de site, outra ronda de perturbação no posicionamento, e o regresso dos avisos do navegador. Se o HTTPS está a causar problemas, a causa é quase sempre uma das entradas na tabela de resolução de problemas, e corrigi-la é muito mais barato do que reverter a migração.

Perguntas Frequentes

Como posso forçar o WordPress a usar HTTPS?

Altere tanto o Endereço do WordPress (URL) como o Endereço do site (URL) para https em Definições > Geral, e depois adicione um redirecionamento 301 ao nível do servidor. No Apache, isso é uma regra de reescrita no .htaccess terminada em [R=301,L]; no Nginx, é uma linha return 301 https://$host$request_uri; no bloco de servidor da porta 80. Adicione FORCE_SSL_ADMIN ao wp-config.php para cobrir também o painel de administração.

Ainda preciso de executar uma pesquisa e substituição na base de dados?

Normalmente não, e essa é uma mudança à qual muitos guias ainda não se adaptaram. Desde o WordPress 5.7, assim que ambas as definições de URL do site usam https, o WordPress reescreve os URLs inseguros no seu conteúdo quando a página é renderizada. Ainda vale a pena executar uma pesquisa e substituição para URLs codificados diretamente em ficheiros de tema, em opções de plugins serializadas, ou em conteúdo de construtores de páginas, mas é um passo de limpeza e não uma parte obrigatória da migração.

Quanto tempo demora a mudar um site WordPress para HTTPS?

Se o seu host já emitiu um certificado, cerca de cinco minutos. Emitir um certificado gratuito e executar o assistente do plugin demora entre dez e quinze minutos. Uma instalação manual com um certificado pago de Domain Validation demora cerca de trinta minutos, e o Organization ou Extended Validation acrescenta um a cinco dias de validação antes de poder instalar seja o que for. Corrigir conteúdo misto depois é a parte variável e depende de quanto do seu conteúdo tem URLs codificados diretamente.

Mudar para HTTPS vai prejudicar o meu posicionamento?

Não de forma permanente, desde que todos os URLs HTTP redirecionem via 301 para o seu equivalente HTTPS. O Google trata a mudança como uma mudança de site com alterações de URL, por isso é de esperar alguma oscilação durante algumas semanas enquanto volta a rastrear o site, e é de esperar que as impressões apareçam divididas entre as suas propriedades HTTP e HTTPS do Search Console durante esse período. Quedas duradouras costumam remontar a redirecionamentos que foram esquecidos, e não ao HTTPS em si.

Porque é que o meu site WordPress ainda mostra “Não Seguro” depois de instalar o certificado?

Três causas explicam a maioria dos casos. Os URLs do site em Definições > Geral ainda estão em http, por isso o WordPress continua a servir páginas HTTP. Ou as páginas carregam pelo menos um recurso via HTTP, o que é conteúdo misto. Ou o certificado foi instalado sem os seus certificados intermédios, pelo que valida de forma inconsistente. Execute primeiro o SSL Checker, já que distingue um problema de instalação de um problema de conteúdo.

A migrar uma plataforma diferente para HTTPS, ou quer o procedimento geral? Consulte o nosso guia sobre como mudar um site de HTTP para HTTPS.

Economize 10% em certificados SSL ao fazer seu pedido hoje!

Emissão rápida, criptografia forte, 99,99% de confiança no navegador, suporte dedicado e garantia de reembolso de 25 dias. Código do cupom: SAVE10

Uma imagem detalhada de um dragão em voo
Escrito por

Redator de conteúdo experiente, especializado em certificados SSL. Transformação de tópicos complexos de segurança cibernética em conteúdo claro e envolvente. Contribua para melhorar a segurança digital por meio de narrativas impactantes.