Como resolver o erro de mixed content (SSL)
O mixed content ocorre quando uma página HTTPS carrega recursos (imagens, scripts, CSS) via HTTP. O navegador mostra um aviso de segurança, o cadeado desaparece e alguns recursos podem ser bloqueados. É um dos problemas mais comuns após migrar um site para HTTPS e geralmente é simples de resolver.
Porque acontece
Quando ativa o SSL, o site passa a carregar em https://. Mas se o conteúdo (artigos, páginas, definições) tem referências a recursos com http:// (URLs absolutos com http), o navegador deteta a mistura de conteúdo seguro e inseguro: mixed content.
Causas comuns: URLs de imagens guardados na base de dados com http (carregadas antes do SSL), CSS ou JS de temas/plugins com URLs hardcoded em http, widgets ou embeds com URLs http, e fontes externas ou CDN configurados com http.
Detetar
Navegador DevTools: abra o site no Chrome, F12 → Console. Erros de mixed content aparecem como avisos amarelos ou erros vermelhos com o URL do recurso problemático.
Why No Padlock: insira o URL em whynopadlock.com e obtenha uma lista de todos os recursos inseguros na página.
Corrigir
1. Alterar URLs no WordPress: em Definições → Geral, confirme que tanto o “Endereço do WordPress” como o “Endereço do site” usam https://.
2. Search and Replace na base de dados: o plugin Better Search Replace permite substituir http://seudominio.pt por https://seudominio.pt em toda a base de dados com um clique. Marque “Dry Run” primeiro para ver quantas substituições fará, depois execute.
3. Forçar HTTPS via .htaccess:
Este exemplo é ilustrativo. Adapte domínio, caminhos e valores ao ambiente e teste numa cópia antes de aplicar. Não repita constantes já definidas nem regras geridas por outra ferramenta.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
4. Verificar tema e plugins: se o mixed content vem de ficheiros do tema ou plugins (não da base de dados), edite os ficheiros ou contacte o developer. URLs em CSS e JS devem usar // (protocol-relative) ou https://.
Prevenção
Adicione o header CSP (Content Security Policy) para forçar upgrade de pedidos HTTP para HTTPS automaticamente:
Header always set Content-Security-Policy "upgrade-insecure-requests"
Isto instrui o navegador a converter automaticamente qualquer pedido http para https, resolvendo mixed content residual.
Localizar o recurso inseguro na página
Use as ferramentas do navegador para identificar o endereço HTTP que está a ser carregado. A origem pode estar num conteúdo, num estilo, numa opção do tema ou num serviço externo. Corrija a referência onde é gerada.
Antes de substituir URLs na base de dados, faça backup e use uma ferramenta que respeite dados serializados. Confirme que o recurso existe por HTTPS. Evite um redirecionamento genérico como única solução: certos pedidos podem continuar bloqueados antes de o redirecionamento ajudar.
Inclua as pessoas no plano de segurança
A tecnologia protege uma parte do serviço, mas muitas ocorrências começam com credenciais expostas, permissões antigas ou mensagens fraudulentas. Utilize palavras-passe únicas num gestor adequado, ative autenticação multifator quando disponível e defina quem pode aprovar alterações sensíveis. Nunca partilhe códigos de acesso numa resposta a uma mensagem inesperada.
O procedimento de recuperação deve ser conhecido antes de uma falha. Saiba quem administra o domínio, onde se encontram as cópias de segurança e como contactar o fornecedor. Após uma suspeita de incidente, registe os sintomas e preserve informação que possa ajudar a análise. A rapidez da reação é importante, mas alterações precipitadas podem apagar os elementos necessários para descobrir o que aconteceu.
Verificar o ambiente antes de seguir instruções
Os nomes dos menus podem mudar com versões ou permissões. Identifique o software, faça uma cópia de segurança e confirme que sabe regressar à configuração anterior. Alterações à base de dados, ao DNS ou aos ficheiros principais exigem cautela adicional.
Execute uma operação de cada vez e teste o resultado. Se aparecer um erro, registe a mensagem completa e o passo que o provocou. Repetir uma importação ou um restauro sem compreender o efeito pode criar duplicados ou perda de dados.
O que documentar depois do procedimento
Guarde a data, os valores alterados, as versões relevantes e os resultados dos testes. Se criou credenciais temporárias, reveja-as antes de concluir. Confirme ainda que as alterações não afetaram formulários, e-mail ou serviços ligados ao mesmo domínio.
Se pedir apoio à Lusitec, descreva os passos realizados e os erros observados, sem divulgar passwords ou chaves privadas. Uma descrição objetiva facilita um diagnóstico mais rápido.
Verificar HTTPS em todas as páginas usadas
Teste imagens, scripts e formulários depois de corrigir os endereços dos recursos.
Veja o nosso serviço de certificados SSL antes de escolher uma opção para o domínio e os subdomínios. Fale connosco se precisa de ajuda a escolher.