bg-tutorials

Como Instalar um Certificado SSL no Joomla e Forçar HTTPS

Mudar um site Joomla para HTTPS envolve três etapas: instalar um certificado SSL no seu servidor, definir Force HTTPS na Configuração Global do Joomla e adicionar um redirecionamento 301 para que os links HTTP antigos sejam seguidos. A terceira etapa tem uma particularidade específica do Joomla que confunde a maioria das pessoas, e ela é abordada abaixo, antes do código.

Resposta rápida: instale o certificado através do seu painel de hospedagem e, em seguida, vá até System > Global Configuration > Server e defina Force HTTPS como Entire Site. Para adicionar um redirecionamento a nível de servidor, primeiro renomeie htaccess.txt na raiz do seu Joomla para .htaccess, porque o Apache ignora o arquivo com o nome original.

SSL (abreviação de Secure Sockets Layer, embora todo certificado emitido atualmente use TLS) é o que remove o rótulo “Não seguro” da sua barra de endereços. Se quiser entender melhor o contexto primeiro, leia o que é um certificado SSL. Estas etapas se aplicam ao Joomla 5 e ao Joomla 6.

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

Sua configuraçãoComo obter o certificadoTempo aproximado
Hospedagem gerenciada ou cPanel com AutoSSLEmita o certificado gratuito no painel e depois defina Force HTTPS10 minutos
Uma hospedagem sem ferramenta de SSL, ou seu próprio VPSCertbot para um certificado Let’s Encrypt e depois defina Force HTTPS20 minutos
Certificado pago (OV, EV ou wildcard)Gere um CSR, instale manualmente e depois defina Force HTTPS30 minutos mais validação
Cloudflare na frente do seu siteCertificado na origem, Cloudflare configurado como Full (strict), e Behind Load Balancer ativado15 minutos

Faça um backup antes de começar. Akeeba Backup é a escolha habitual no Joomla. O modo de falha deste procedimento é perder o acesso ao seu próprio administrador, e um backup mais a etapa de recuperação na seção configuration.php abaixo vão resolver isso.

Qual certificado SSL um site Joomla deve usar?

Comece com a opção gratuita. A maioria das hospedagens emite certificados Let’s Encrypt gratuitos automaticamente, e a criptografia oferecida por um certificado gratuito é idêntica à de um pago. O que diferencia um certificado SSL para Joomla de outro é o que a autoridade certificadora verificou antes de emiti-lo, e o que você obtém quando algo dá errado.

TipoO que a CA verificaEmitido emAdequado para
Domain Validation (DV)Que você controla o domínioMinutosBlogs, sites institucionais, a maioria das instalações Joomla
Organization Validation (OV)O domínio mais sua organização registrada1 a 3 dias úteisSites empresariais, áreas de membros, portais de clientes
Extended Validation (EV)Uma verificação legal e operacional completa da empresa1 a 3 dias úteisLojas, finanças, qualquer lugar onde a identidade importe

Se a sua instalação Joomla atende subdomínios, um certificado wildcard cobre todos eles com um único certificado. Não tem certeza de qual tipo se aplica? O SSL Wizard ajuda a definir isso em poucas perguntas.

Um certificado gratuito deixa de ser a resposta certa em quatro casos: você aceita pagamentos e quer uma garantia atrás do certificado, você precisa que os dados verificados da sua organização estejam contidos nele, e não apenas o controle do domínio, você tem subdomínios e a emissão de wildcard gratuito é complicada na sua hospedagem, ou sua hospedagem não automatiza a renovação. Esse último ponto importa mais do que as pessoas esperam, e a próxima seção explica por quê.

Coloque o certificado no seu servidor

O Joomla não instala certificados. Esta etapa ocorre no servidor, antes de você tocar no Joomla propriamente.

A partir do seu painel de hospedagem

Procure por SSL/TLS, Let’s Encrypt ou AutoSSL no seu painel de controle. No cPanel, isso fica em Security. Emita o certificado tanto para o domínio raiz quanto para a versão com www, ou aquele que você deixar de fora vai gerar um aviso de incompatibilidade de nome.

Certificados Let’s Encrypt duram 90 dias e são renovados automaticamente cerca de 30 dias antes do vencimento. Quando essa automação falha, geralmente após uma mudança de domínio ou uma alteração de DNS, o site continua funcionando por semanas e depois fica inseguro sem aviso. Confirme que a renovação automática está ativada e, após a primeira data de renovação esperada, verifique o certificado com o SSL Checker. Se a data de validade avançou, a renovação está funcionando.

Em um VPS sem painel

Use o Certbot, o cliente do Let’s Encrypt. Ele emite o certificado pela linha de comando, configura o Apache ou Nginx e instala seu próprio temporizador de renovação.

Instalando um certificado pago manualmente

Não pule os certificados intermediários. Instale o certificado principal sem a cadeia e a maioria dos navegadores desktop ainda mostrará um cadeado, porque eles armazenam intermediários já vistos em outros lugares. Navegadores móveis, gateways de pagamento e clientes de API vão falhar. Se um problema de cadeia é o que você está enfrentando, consulte certificados intermediários expirados.

Como forçar HTTPS no Joomla

Com um certificado funcionando no servidor, diga ao Joomla para usá-lo. Faça login no administrador e vá para System > Global Configuration > Server. No bloco Server, no topo dessa aba, você encontrará Force HTTPS, que tem três estados em vez de um simples ligado e desligado.

  • None. O Joomla não faz nada. As páginas permanecem acessíveis tanto por HTTP quanto por HTTPS.
  • Administrator Only. O administrador, incluindo a tela de login, é forçado para HTTPS, enquanto o site público permanece inalterado. Este é o estado a usar enquanto um certificado ainda está sendo validado, ou em um site que você está migrando em etapas. Sua própria senha para de viajar em texto claro imediatamente, sem afetar nada que os visitantes veem.
  • Entire Site. Tudo é forçado para HTTPS. É isso que você quer assim que confirmar que o certificado está funcionando.

Selecione Entire Site e salve. Verifique se o certificado resolve corretamente no seu domínio antes de fazer isso. Se o Force HTTPS for ativado enquanto o certificado estiver quebrado ou ausente, o administrador também ficará inacessível, e você precisará da etapa de recuperação abaixo.

Estas instruções são destinadas ao Joomla 5 e ao Joomla 6, os dois ramos suportados. O Joomla 6.0 foi lançado em outubro de 2025, e o Joomla 5 deixa de receber atualizações funcionais em 13 de outubro de 2026, após o qual recebe apenas correções de segurança até outubro de 2027. Se você ainda estiver no Joomla 3, ele atingiu o fim de vida em agosto de 2023 e a configuração fica em um local diferente, então atualize antes de seguir qualquer coisa aqui.

Definir Force HTTPS a partir do configuration.php

Toda configuração na Configuração Global é armazenada em configuration.php, na raiz do seu Joomla. Editar esse arquivo via FTP é como você recupera o acesso quando o Force HTTPS bloqueou o administrador, que é exatamente a situação em que o menu suspenso não está mais acessível.

A linha relevante é:

public $force_ssl = 2;

Os valores correspondem aos três estados: 0 é None, 1 é Administrator, e 2 é tanto o site quanto o administrador. Definir de volta para 0 via FTP desfaz um bloqueio em segundos.

Você encontrará uma segunda linha próxima:

public $live_site = '';

Muitos tutoriais de HTTPS para Joomla dizem para você preencher isso com seu endereço https, e muitos deles escrevem como var $live_site. Essa sintaxe pertence ao Joomla 1.5, que usava a sintaxe de classe do PHP 4 e foi descontinuado em 2012. O Joomla atual usa public, e a configuração é documentada como opcional. Deixe-a vazia, a menos que você tenha um motivo específico para fixar a URL do site. Não é isso que ativa o HTTPS, e configurá-la incorretamente é uma forma comum de quebrar um site Joomla. $force_ssl é a configuração que faz o trabalho.

Adicionar um redirecionamento 301 no .htaccess

O Force HTTPS trata as requisições que chegam ao Joomla. Um redirecionamento a nível de servidor é mais rápido, porque acontece antes de o PHP ser executado, e continua funcionando mesmo se o Joomla estiver fora do ar. No Apache, isso significa .htaccess, e aqui está a parte que quase todo guia pula.

Primeiro, renomeie o htaccess.txt

O Joomla vem com o arquivo chamado htaccess.txt, não .htaccess. O Apache o ignora com esse nome. Se você colar regras de redirecionamento em um arquivo chamado htaccess.txt, ou em um arquivo .htaccess que ainda não existe, nada acontece e não há erro para dizer por quê.

  • Renomeie htaccess.txt para .htaccess na raiz do seu Joomla. Não edite o htaccess.txt e o deixe lá: uma atualização do Joomla sobrescreve esse arquivo e suas alterações são perdidas junto.
  • Faça a renomeação antes de ativar Use URL Rewriting na Configuração Global. Se você ativar a reescrita primeiro, o Joomla começa a gerar URLs sem index.php que o Apache não sabe como rotear, então todas as páginas exceto a página inicial retornam 404.

Depois adicione o redirecionamento

Adicione estas linhas próximo ao topo do .htaccess, acima do bloco de reescrita próprio do Joomla:

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

Dois detalhes determinam se isso funciona. A condição precisa ser off, ou seja, “redirecionar quando a requisição ainda não é segura”. Escrita como on, o que aparece em um número surpreendente de trechos publicados, a regra dispara apenas em requisições que já são HTTPS e as envia para HTTPS novamente, o que é um loop. E o parâmetro R=301 é o que torna isso um redirecionamento permanente. Sem ele, ou com um simples R, você obtém um redirecionamento temporário 302 ou uma reescrita interna que nunca informa aos motores de busca que algo foi movido.

No Nginx

O Nginx não tem .htaccess e não lê regras de reescrita do Apache. Edite o bloco do servidor em vez disso:

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

Teste com nginx -t, depois recarregue com systemctl reload nginx.

Corrija o que a mudança deixa pendente

Limpe o cache do Joomla. Esta é a primeira coisa a fazer e a que mais é esquecida. O Joomla continuará servindo páginas em cache repletas de marcação HTTP, o que faz uma migração concluída parecer quebrada. Vá para System > Clear Cache, no painel Maintenance, e limpe seu CDN também, se você usar um.

Corrija o conteúdo misto. Uma página servida via HTTPS que ainda carrega uma imagem, script ou folha de estilo via HTTP é conteúdo misto. Os navegadores tratam as duas categorias de forma diferente: mídia geralmente é atualizável, então o navegador a solicita silenciosamente via HTTPS, enquanto scripts e folhas de estilo são bloqueáveis e simplesmente rejeitados, motivo pelo qual uma página afetada pode aparecer completamente sem estilo. No Joomla, as fontes usuais são URLs fixas em substituições de template, configurações de módulos e extensões de terceiros. A console do navegador identifica o recurso problemático. Nosso guia sobre como corrigir conteúdo misto aborda o diagnóstico completo.

Atualize seu sitemap e o robots.txt. Regenere o sitemap XML para que ele liste URLs https, e verifique se o robots.txt não faz referência à versão http de nada.

Solução de problemas de SSL no Joomla

Muitos redirecionamentos após ativar o Force HTTPS

Esta é a falha mais comum relacionada a HTTPS no Joomla, e acontece porque dois conselhos padrão são incompatíveis entre si. Se um proxy como o Cloudflare finaliza o TLS e depois se comunica com seu servidor via HTTP puro, o Joomla nunca vê uma requisição HTTPS. O Force HTTPS conclui que o visitante chegou de forma insegura e o redireciona para HTTPS, o proxy responde a essa requisição via HTTP novamente, e o loop continua até o navegador desistir com ERR_TOO_MANY_REDIRECTS.

Existem duas correções e geralmente você quer as duas:

  • Defina o modo de criptografia SSL/TLS do Cloudflare como Full (strict) e mantenha um certificado válido no servidor de origem. O modo Flexible, que vários tutoriais populares de Joomla ainda recomendam como a opção gratuita rápida, é o que cria o loop.
  • Mude Behind Load Balancer para Yes. Está na mesma aba System > Global Configuration > Server, mais abaixo, no bloco Proxy. Isso instrui o Joomla a confiar no cabeçalho de protocolo encaminhado pelo proxy, em vez de procurar por uma conexão HTTPS direta.

Uma ressalva sobre essa segunda configuração: ative Behind Load Balancer apenas se seu site realmente estiver atrás de um proxy, load balancer ou CDN. Em uma hospedagem comum, confiar em um cabeçalho encaminhado que qualquer um pode enviar reduz a segurança sem nenhum benefício.

Outros problemas comuns

SintomaCausaCorreção
Bloqueado fora do administradorForce HTTPS ativado enquanto o certificado está ausente ou quebradoDefina $force_ssl como 0 no configuration.php via FTP, corrija o certificado e depois reative
As regras de redirecionamento não fazem nadaForam escritas no htaccess.txt, ou em um arquivo .htaccess que não existeRenomeie htaccess.txt para .htaccess
Todas as páginas exceto a inicial retornam 404URL Rewriting foi ativado antes da renomeaçãoRenomeie o arquivo, ou desative a reescrita até fazê-lo
Cadeado ausente apenas em algumas páginasConteúdo misto nessas páginasEncontre o recurso HTTP na console do navegador
O site estava bem, ficou inseguro semanas depoisUm certificado Let’s Encrypt expirou porque a renovação falhouReemita, depois confirme a renovação automática no seu painel
Funciona em um navegador, falha em um app ou gatewayCadeia de certificado incompletaInstale o pacote completo da CA, verifique novamente com o SSL Checker
Incompatibilidade de nome no www ou no domínio raizO certificado cobre apenas um dos dois nomesReemita cobrindo ambos. Veja nome comum inválido

Se o certificado estiver instalado e o site ainda for reportado como inseguro, os guias de erros SSL tratam de códigos de erro específicos de navegadores.

Depois da mudança: lista de verificação SEO

  • Adicione a propriedade HTTPS no Google Search Console. Uma propriedade HTTP não reporta URLs HTTPS. Adicione a nova, ou use uma propriedade de Domínio, que cobre ambas.
  • Reenvie o sitemap com URLs https.
  • Verifique se as tags canônicas apontam para https na sua extensão SEF ou SEO.
  • Atualize o analytics e qualquer serviço de terceiros que armazene a URL do seu site.

Espere algumas oscilações. O Google trata uma mudança de HTTP para HTTPS como uma movimentação de site com alterações de URL, então as impressões aparecerão divididas entre suas propriedades HTTP e HTTPS por um tempo, e os rankings costumam flutuar por algumas semanas antes de se estabilizarem. Desde que todas as páginas resolvam corretamente e os redirecionamentos 301 estejam em vigor, não há nada a corrigir.

Depois que o HTTPS estiver estável por um tempo, considere o HSTS, que instrui os navegadores a rejeitar completamente HTTP puro para o seu domínio. Deixe a diretiva de preload desativada no início, pois ela é difícil de revogar e tornará qualquer subdomínio ainda em HTTP inacessível.

Perguntas Frequentes

Como faço para ativar o SSL no Joomla?

Primeiro instale um certificado SSL no seu servidor, através do seu painel de hospedagem ou manualmente. Depois faça login no administrador do Joomla, abra System > Global Configuration > Server, e defina Force HTTPS como Entire Site. O Joomla em si não instala certificados. Ele apenas aplica o que o seu servidor já possui.

Onde está a configuração Force HTTPS no Joomla?

Na aba System > Global Configuration > Server, no bloco Server no topo dela. Ela oferece três estados: None, Administrator Only, e Entire Site. Administrator Only é útil enquanto um certificado ainda está sendo validado, porque protege o seu login sem alterar o que os visitantes veem.

Por que meu site Joomla mostra “muitos redirecionamentos” após ativar o Force HTTPS?

Quase sempre porque um proxy como o Cloudflare está finalizando o TLS e passando HTTP puro para o seu servidor, então o Joomla acredita que cada requisição chegou de forma insegura e a redireciona novamente. Defina o modo de criptografia do Cloudflare como Full (strict) em vez de Flexible, e mude Behind Load Balancer para Yes, no bloco Proxy da Configuração Global. Ative essa configuração apenas se você realmente estiver atrás de um proxy.

Preciso editar o configuration.php para usar HTTPS?

Não. O menu suspenso da Configuração Global grava o mesmo valor que o arquivo contém. Editar o configuration.php importa em uma situação: quando o Force HTTPS bloqueou você do administrador, você pode definir $force_ssl de volta para 0 via FTP. Ignore os tutoriais antigos que dizem para preencher var $live_site. Essa sintaxe foi descontinuada com o Joomla 1.5 em 2012, e a configuração é opcional em qualquer caso.

Por que meu redirecionamento .htaccess não está funcionando no Joomla?

Verifique primeiro o nome do arquivo. O Joomla fornece o arquivo como htaccess.txt e o Apache o ignora com esse nome, então as regras coladas nele nunca são executadas. Renomeie-o para .htaccess. Se o arquivo estiver correto, verifique a condição: ela deve estar como RewriteCond %{HTTPS} off. Escrita como “on”, ela corresponde apenas a requisições que já são seguras, o que produz um loop de redirecionamento em vez de um redirecionamento.

A quais versões do Joomla estas etapas se aplicam?

Joomla 5 e Joomla 6, os dois ramos atualmente suportados. O Joomla 6.0 foi lançado em outubro de 2025. O Joomla 5 recebe atualizações funcionais até 13 de outubro de 2026 e correções de segurança até outubro de 2027. O Joomla 3 atingiu o fim de vida em agosto de 2023 e organiza sua configuração de forma diferente, então atualize antes de seguir estas etapas.

Está migrando uma plataforma diferente, ou quer o procedimento geral? Veja 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.