Conteúdo misto: o que é e como funciona
Conteúdo misto (em inglês, mixed content) acontece quando uma página aberta por HTTPS carrega algum recurso, como uma imagem, um script ou uma fonte, por HTTP, sem criptografia. O navegador bloqueia o recurso ou mostra um alerta, e o cadeado do site deixa de aparecer por inteiro.
Por que o conteúdo misto é um problema?
Em uma página HTTPS, tudo deveria chegar criptografado. Um recurso HTTP pode ser lido ou alterado no caminho por um invasor, e, se for um script, ele pode mudar o comportamento da página inteira. Por isso os navegadores tratam cada tipo de um jeito. Segundo a documentação da MDN:
| Tipo de recurso | O que o navegador faz |
|---|---|
| Imagens, vídeos e áudios | tentam trocar o endereço para HTTPS sozinhos; se o endereço seguro não existir, o arquivo não carrega |
| Scripts, folhas de estilo, iframes, fontes e requisições fetch ou XHR | são bloqueados |
| Download por link http:// | é bloqueado por padrão ou exige confirmação do visitante |
O resultado que você enxerga é uma imagem faltando, um menu sem estilo, um botão que não responde ou o aviso de site “não seguro”.
Como achar e corrigir o conteúdo misto?
- Abra a página com problema, aperte F12 e olhe a aba Console. Cada mensagem “Mixed Content” mostra o endereço que está vindo por HTTP.
- Troque o endereço por
https://, se o outro site oferecer essa versão, ou use um caminho relativo (como/imagens/foto.jpg) para arquivos do seu próprio site. - No WordPress, confira em Configurações > Geral se o endereço do WordPress e o do site começam com
https://. Endereços antigos gravados no banco de dados exigem uma busca e substituição, e um backup antes de fazê-la é indispensável. - Se um recurso de terceiros só existe em HTTP, troque de fornecedor ou hospede o arquivo no seu próprio site.
Há também o cabeçalho de segurança abaixo, que manda o navegador pedir tudo por HTTPS. Ele só reescreve o prefixo do endereço, então o recurso precisa existir de fato em HTTPS.
Content-Security-Policy: upgrade-insecure-requests
O certificado e o redirecionamento não resolvem?
Eles são necessários, mas não bastam. O certificado SSL (que pode ser gratuito, como o do Let’s Encrypt) permite o HTTPS, e um redirecionamento 301 leva o visitante da versão http:// do site para a https://. Nenhum dos dois altera os endereços escritos dentro da página, que é onde o conteúdo misto mora.
Como fica na PW Host?
O certificado SSL gratuito é emitido pelo painel DirectAdmin, e o passo a passo para ligar o redirecionamento está em Forçar o HTTPS. Esse tutorial cita, para o WordPress, o uso de um plugin de busca e substituição para trocar os http:// antigos do banco por https://, com backup antes. Se o navegador mostrar um aviso de conexão não segura, veja também o tutorial Aviso “sua conexão não é particular”.
