Forçar HTTPS no WordPress exige quatro camadas: certificado válido, redirecionamento 301, correção de conteúdo misto e HSTS. Segundo a Let’s Encrypt (2025), os page loads em HTTPS subiram de 39% para cerca de 80% globais em dez anos. Pular a correção de conteúdo misto deixa o cadeado quebrado mesmo com SSL ativo. Faça as quatro camadas na ordem para travar o tráfego.
Forçar HTTPS no WordPress significa garantir que todo o tráfego do site use conexão criptografada, sem nenhuma rota residual em HTTP. Não basta instalar o certificado SSL: o navegador precisa ser redirecionado, o banco de dados precisa de URLs limpas e o cabeçalho HSTS precisa instruir o navegador a nunca mais tentar HTTP. Nos tickets de suporte da FULL, o erro mais comum é parar na primeira camada e achar que terminou. Este tutorial cobre as quatro camadas na ordem certa, com CVEs reais dos plugins SSL e o checklist de validação que usamos no guia completo de segurança no WordPress. Para o contexto amplo, veja os guias de segurança WordPress da FULL.
Primeiros passos: Visão geral das 4 camadas
Forçar HTTPS no WordPress de forma definitiva depende de 4 camadas que falham em pontos diferentes: na maioria dos sites que chegam ao suporte da FULL com “cadeado quebrado”, o certificado está correto e o problema é conteúdo misto ou redirecionamento incompleto.
A tabela abaixo mapeia cada camada, seu objetivo e o teste que confirma que ela funcionou. Trate as 4 camadas em sequência, porque ativar HSTS antes de limpar o conteúdo misto trava o site no navegador sem opção de voltar.
| Camada | Objetivo | Check de validação |
|---|---|---|
| Certificado SSL | Emitir e instalar o certificado no domínio | Nota A no SSL Labs Test |
| Redirecionamento 301 | Enviar todo HTTP para HTTPS sem loop | curl -I retorna 301 para HTTPS |
| Conteúdo misto | Limpar URLs HTTP no banco e nos assets | Console do navegador sem warning |
| HSTS | Instruir o navegador a só usar HTTPS | Header Strict-Transport-Security presente |
As ferramentas do fluxo são gratuitas: SSL Labs Test, Mozilla Observatory e Cloudflare.
Como instalar o certificado SSL antes de forçar HTTPS
Legenda: o certificado válido é a base. Sem ele, forçar HTTPS gera erro de conexão não privada no navegador.
Instalar o certificado é a camada zero: sem um certificado válido, qualquer redirecionamento para HTTPS gera o aviso “sua conexão não é privada” e derruba o tráfego. A maioria das hospedagens emite um certificado gratuito da Let’s Encrypt em poucos minutos pelo painel, com renovação automática a cada 90 dias.
Confirme a emissão antes de seguir, porque as próximas 3 camadas pressupõem um certificado ativo. O passo a passo está no tutorial de certificado SSL gratuito para WordPress, e a alternativa via Let’s Encrypt no guia de SSL grátis. Segundo a documentação oficial da Let’s Encrypt, o protocolo ACME renova o certificado sem intervenção manual, o que elimina a falha clássica de certificado expirado.
Por que o redirecionamento 301 precisa ser forçado no servidor
O redirecionamento 301 é a camada que envia todo acesso HTTP para HTTPS de forma permanente, e ele precisa rodar antes de qualquer plugin carregar. Um redirecionamento por PHP funciona, mas adiciona até 50 ms de latência; o ideal é forçar no servidor, via .htaccess no Apache ou bloco server no Nginx.
A regra clássica no .htaccess usa RewriteCond %{HTTPS} off seguida de RewriteRule para HTTPS com flag R=301. O risco real aparece atrás de proxy reverso: redirecionamento 301 forçado no .htaccess sem checar o header X-Forwarded-Proto em servidor atrás de proxy reverso resulta em loop infinito de redirecionamento, com o navegador retornando ERR_TOO_MANY_REDIRECTS. Nesses casos, a condição correta passa a ser RewriteCond %{HTTP:X-Forwarded-Proto} !https. Teste sempre com curl -I antes de confiar no resultado, e nunca empilhe regras de 301 de plugin e de servidor ao mesmo tempo, porque a dupla camada gera redirecionamento conflitante e intermitente em parte das requisições.
Como forçar HTTPS no WordPress passo a passo
Forçar HTTPS no WordPress de ponta a ponta leva de 10 a 30 minutos em um site pequeno, e os quatro passos abaixo cobrem desde a configuração da URL até a ativação do HSTS. Execute na ordem: alterar a URL antes de redirecionar evita que o WordPress gere links absolutos em HTTP e recrie conteúdo misto. Cada passo tem um check objetivo de validação.
Passo 1: Configure a URL do site para HTTPS
Acesse Configurações, Geral e altere “Endereço do WordPress” e “Endereço do Site” de HTTP:// para https://. Em sites com acesso travado, edite o wp-config.php e defina WP_HOME e WP_SITEURL com a URL HTTPS. Esse passo faz o WordPress gerar todos os novos links em HTTPS e é pré-requisito para os próximos.
Passo 2: Force o redirecionamento 301 no .htaccess
Adicione a regra de RewriteCond e RewriteRule no topo do .htaccess, acima do bloco do WordPress. Se o site estiver atrás de Cloudflare ou proxy, use a condição com X-Forwarded-Proto. Valide com curl -I http://seusite.com e confirme o retorno 301 apontando para o destino HTTPS.
Passo 3: Limpe o conteúdo misto no banco de dados
Rode um search-replace para trocar http://seusite.com por https://seusite.com em todas as tabelas. Via WP-CLI, o comando é wp search-replace 'http://seusite.com' 'https://seusite.com' --all-tables --dry-run antes de aplicar. Isso elimina URLs absolutas hardcoded de imagens e CSS que mantêm o cadeado quebrado.
Passo 4: Ative o cabeçalho HSTS
Adicione Strict-Transport-Security: max-age=31536000; includeSubDomains no .htaccess ou no Nginx. Só ative depois que os passos 1 a 3 estiverem validados, porque o HSTS instrui o navegador a recusar HTTP por um ano. Confirme o header com o Mozilla Observatory.
Conteúdo misto: Por que o cadeado quebra mesmo com SSL
Legenda: o aviso de mixed content no console é a causa nº 1 do cadeado quebrado após migração para HTTPS.
Conteúdo misto acontece quando uma página em HTTPS carrega recursos via protocolo inseguro, e é a causa que aparece em cerca de metade dos chamados de “SSL não funciona” no suporte da FULL. O navegador exibe o cadeado quebrado e, em scripts, bloqueia o recurso por completo, sem erro visível no admin.
A relação técnica é direta: assets inseguros hardcoded no banco, somados a uma página segura, resultam em cadeado quebrado e bloqueio de scripts pelo navegador. A correção definitiva é o search-replace do Passo 3, não um plugin que reescreve a saída em tempo real, porque esse tipo de plugin tende a mascarar o problema sem limpar a origem. Para diagnosticar rápido, abra o console (F12) e procure os warnings de “Mixed Content”. O tutorial de cabeçalhos de segurança HTTP no WordPress complementa a limpeza com a política Content-Security-Policy.
Plugins SSL: Vulnerabilidades reais e o que isso ensina
O plugin de SSL mais usado, o Really Simple SSL, já teve 4 CVEs catalogados ao longo dos anos, sendo 1 deles crítico, segundo o perfil público do WPVulnerability. O dado importa pela lição de processo, não pelo alarme: todas estão corrigidas nas versões atuais.
Um histórico de CVEs corrigidas sinaliza auditoria ativa, não fragilidade. A FULL fala disso com autoridade direta porque é a única empresa brasileira reconhecida como CNA (CVE Numbering Authority) sob a CISA desde maio de 2022, ou seja, está autorizada a atribuir IDs CVE oficiais. O risco real está sempre na versão desatualizada, nunca na falha já corrigida.
O caso mais sério foi a CVE-2024-10924, com CVSS 9.8 (crítico), que permitia bypass de autenticação e afetava as versões 9.0.0 a 9.1.1.1 do Really Simple SSL. Outra foi a CVE-2025-24623, CVSS 4.3, corrigida na 9.2.0. A leitura defensiva é direta: forçar HTTPS sem manter o plugin atualizado troca um risco por outro. Mantenha atualizações automáticas ativas, como no hardening de segurança no WordPress.
Como manter o HTTPS sem gerenciar plugin por plugin
Manter o HTTPS travado e os plugins de segurança atualizados em escala é onde o tempo do administrador some. O plano PRO da FULL sai por R$849,90 e cobre até 10 sites, o que dá cerca de R$85 por site, com os plugins de segurança e SSL gerenciados de forma centralizada.
A gente vê no suporte que o site não cai por falta de certificado, e sim por plugin de SSL desatualizado meses depois da migração. O bundle resolve a manutenção, não a hospedagem: a FULL gerencia a camada de segurança e os plugins, complementando a sua hospedagem atual. Conheça os planos da FULL e o All in One Security incluso no pacote.
Antes de fechar, rode uma verificação independente. Escaneie seu WordPress gratuitamente e descubra se algum plugin de SSL ou segurança está em versão vulnerável com o FULL Scan, sem instalar nada.
Decisão rápida: Qual camada priorizar primeiro
- Se o site é novo e já nasceu em HTTPS → pule para o Passo 4 e ative o HSTS direto.
- Se o cadeado está quebrado com SSL ativo → o problema é conteúdo misto, vá ao Passo 3 e rode o search-replace.
- Se o site está atrás de Cloudflare ou proxy → evite a regra padrão do .htaccess, use a condição com X-Forwarded-Proto.
- Se você não quer editar arquivos do servidor → use o Really Simple SSL atualizado e valide depois no SSL Labs Test.
Perguntas frequentes sobre forçar HTTPS no WordPress
É possível forçar HTTPS no WordPress sem instalar plugin?
Sim, é possível e até recomendado em servidores próprios. Você força HTTPS editando o .htaccess no Apache com uma regra RewriteCond e RewriteRule de 301, mais o cabeçalho HSTS, sem nenhum plugin. Esse método é mais rápido que o redirecionamento por PHP porque roda antes do WordPress carregar. O plugin Really Simple SSL só é mais prático para quem não tem acesso ao servidor ou quer evitar editar arquivos manualmente.
Por que o cadeado continua quebrado mesmo com SSL instalado?
O cadeado quebra por conteúdo misto: a página carrega em HTTPS, mas puxa imagens, CSS ou scripts em http://. Isso acontece quando o banco de dados guarda URLs absolutas em HTTP, comum em sites migrados sem search-replace. O navegador detecta o recurso inseguro e quebra o cadeado, e em scripts ele bloqueia o recurso. A correção é rodar o search-replace em todas as tabelas, trocando HTTP:// por https://, e não confiar só na ativação do certificado.
Qual a diferença entre redirecionamento 301 e HSTS no WordPress?
O redirecionamento 301 envia o usuário de HTTP para HTTPS a cada acesso, mas o navegador ainda tenta HTTP primeiro. O HSTS é um cabeçalho que instrui o navegador a nunca mais tentar HTTP por um período definido, como `max-age=31536000` (um ano). O 301 corrige o acesso; o HSTS previne o acesso inseguro na origem. Ative o HSTS só depois que o 301 e a limpeza de conteúdo misto estiverem validados, porque ele é difícil de reverter.
Quanto tempo leva para forçar HTTPS em todo o site?
Em um site pequeno, forçar HTTPS leva de 10 a 30 minutos no total: poucos minutos para emitir o certificado pelo painel, alguns para o redirecionamento 301 e o restante para o search-replace e o HSTS. Sites grandes, com muitas URLs hardcoded no banco, podem levar mais por causa da limpeza de conteúdo misto. O gargalo quase nunca é o certificado, e sim encontrar e corrigir todos os recursos servidos em HTTP no conteúdo antigo.
O que é conteúdo misto e como ele afeta o HTTPS?
Conteúdo misto é quando uma página servida em HTTPS carrega recursos em http://, como imagens, fontes ou scripts. Isso afeta o HTTPS de duas formas: o navegador quebra o cadeado de segurança e, no caso de scripts e iframes, bloqueia o recurso por completo, o que pode quebrar o layout. A causa raiz costuma ser URLs absolutas em HTTP salvas no banco de dados. A solução é o search-replace em todas as tabelas, não um plugin que mascara a saída em tempo de execução.
Próximos passos para travar o HTTPS no seu site
Forçar HTTPS no WordPress não termina na primeira camada: certificado, redirecionamento 301, limpeza de conteúdo misto e HSTS formam a sequência que trava o tráfego de ponta a ponta. A causa nº 1 de cadeado quebrado é conteúdo misto, não o certificado, então valide cada camada com SSL Labs Test e Mozilla Observatory antes de declarar a migração concluída. Se o Google já sinalizou o site, o passo seguinte é corrigir os alertas de segurança no Google. Para continuar aprendendo, o FULL Academy reúne os tutoriais, guias e reviews de segurança em um só lugar, e o guia de segurança para WordPress organiza o caminho completo.
















