Resolver problemas
O site não aparece como seguro com HTTPS (conteúdo misto)
Partimos do princípio de que o seu site já está configurado para usar https:// com o seu certificado SSL. O normal é que o navegador o mostre como seguro:

Mas, por vezes, embora o endereço comece por https://, o navegador mostra um aviso, ou o site aparece «deformado» porque as folhas de estilo, as imagens ou os ficheiros JavaScript não carregam:

É o que se chama conteúdo misto: a página é carregada por HTTPS, mas dentro tem ligações a imagens, CSS, JavaScript ou outros recursos que são pedidos por http://. Os navegadores bloqueiam os scripts e estilos que chegam por HTTP e, até que todos os recursos sejam carregados por HTTPS, não mostram o site como seguro.
Localizar os recursos com http://
Abra o site no Chrome ou no Firefox, prima F12 e entre no separador Consola. Recarregue a página: cada recurso com problema aparece com um aviso «Mixed Content» e o seu endereço http:// completo. Explicamo-lo com mais detalhe em como usar a consola do navegador.
Com essa lista já sabe o que tem de corrigir. O habitual é que as ligações estejam:
- Na base de dados da aplicação (conteúdo de páginas e artigos, definições com o URL do site).
- Nos ficheiros do tema ou do modelo, incluindo os CSS (por exemplo, uma imagem de fundo com
url(http://...)). - Em recursos de outros sites (tipos de letra, scripts, imagens externas).
Corrigi-lo no WordPress
-
Em Definições > Geral, verifique se Endereço do WordPress (URL) e Endereço do site (URL) começam por
https://. -
Altere as ligações antigas da base de dados com o plugin Better Search Replace. Em Ferramentas > Better Search Replace:
- Search for:
http://tudominio.com - Replace with:
https://tudominio.com - Selecione todas as tabelas.
- Faça primeiro uma passagem com Run as dry run? marcado para ver quantas alterações fará e, depois, desmarque-o e execute.
Repita com
http://www.tudominio.comse o seu site usava owww. Faça antes uma cópia da base de dados. Este plugin respeita os dados serializados do WordPress; não o faça com umUPDATEno phpMyAdmin, porque os estragaria.Se tiver acesso por SSH, pode fazer o mesmo com o WP-CLI:
- Search for:
wp search-replace 'http://tudominio.com' 'https://tudominio.com' --all-tables --dry-run wp search-replace 'http://tudominio.com' 'https://tudominio.com' --all-tables
- Esvazie a cache do WordPress (plugin de cache) e a do navegador, e volte a ver a consola.
Se restarem avisos, costumam vir do tema ou de um plugin com o endereço escrito no seu código ou nos seus CSS: corrija-o nesse ficheiro ou nas definições do tema.
Como solução rápida enquanto corrige a origem, o plugin SSL Insecure Content Fixer reescreve as ligações http:// para https:// ao servir a página. Nas suas definições (Definições > SSL Insecure Content), comece pelo nível Simple e suba para Content ou Widgets se não bastar.
Corrigi-lo em qualquer outro site
Para qualquer aplicação (PrestaShop, Joomla, um site feito à mão…), altere as ligações http:// que a consola mostra na configuração, na base de dados ou nos ficheiros do tema.
Entretanto, pode pedir ao navegador que carregue por HTTPS todos os recursos da página, adicionando esta linha no início do ficheiro .htaccess do site:
Header always set Content-Security-Policy "upgrade-insecure-requests"
Só funciona com recursos que também estejam disponíveis por HTTPS. Se um site externo não tiver HTTPS, esse recurso continuará sem carregar: descarregue-o e carregue-o para o seu alojamento, ou substitua-o por outro.
Verificar que funciona
Volte a abrir o site com a consola aberta: não deve restar nenhum aviso «Mixed Content» e o navegador deve mostrar a ligação como segura. Reveja também alguma página interna, o formulário de contacto e, se for uma loja, o carrinho.
Também lhe pode ser útil
- O Chrome mostra um ícone de controlos em vez do cadeado HTTPS Explica o ícone de controlos que o Chrome usa para uma ligação segura e como distingui-lo de avisos...
- Como resolver o erro cURL 60 de certificado SSL no WordPress Como diagnosticar e resolver o erro cURL 60 do WordPress sem desativar a verificação de certificados...
- Encomendas não confirmadas após um pagamento com Redsys Evite encomendas por confirmar com a Redsys revendo o callback HTTPS e validando assinatura, montant...
- 500 Internal Server Error Diagnostique um erro 500 a partir do pedido e do registo do mesmo instante antes de rever o PHP, o ....
Algo não bate certo ou mudou? Diga-nos e revemos.