Sites

Corrigindo Avisos de Conteúdo Misto Após Ativar HTTPS

When SSL is active but the browser padlock is missing, broken or showing a warning, the cause is almost always mixed content: the page itself is encrypted but something on it is still being fetched…

Quando SSL está ativo mas o cadeado do navegador está faltando, quebrado ou mostrando um aviso, a causa é quase sempre conteúdo misto: a página em si está criptografada mas algo nela ainda está sendo recuperado via HTTP simples. Este guia explica por que isso acontece, como encontrar cada recurso problemático e como corrigi-lo adequadamente em vez de apenas contornar o problema.

O Que É Conteúdo Misto

Um navegador trata uma página como segura apenas se a página e tudo que ela carrega chegaram via HTTPS. Se uma página HTTPS puxa uma imagem, script, stylesheet, fonte ou iframe de um endereço http://, o navegador a sinaliza.

Os navegadores dividem isso em duas categorias, e se comportam de formas muito diferentes:

  • Conteúdo misto ativo: scripts, stylesheets, iframes e XHR. Os navegadores bloqueiam estes completamente. Layouts desabam, sliders param, formulários param de enviar. Este é o tipo destrutivo.
  • Conteúdo misto passivo: imagens, áudio e vídeo. Estes geralmente ainda carregam, mas o cadeado é rebaixado ou removido.

Um site pode, portanto, parecer completamente normal e mesmo assim estar perdendo seu cadeado, ou parecer quebrado sem nenhum erro óbvio na página em si.

Por Que Acontece Após Ativar SSL

Ativar SSL muda como seu site é servido. Não muda o que está armazenado dentro dele.

WordPress escreve URLs absolutos no banco de dados, então um site que rodou em HTTP por qualquer período de tempo tem endereços http:// salvos em:

  • Conteúdo de posts e páginas, incluindo cada imagem inserida através do editor.
  • Registros de anexos de mídia.
  • Configurações do personalizador de tema e opções de tema.
  • Conteúdo de widgets e configurações de blocos.
  • Configurações de plugins, particularmente construtores de página e plugins de slider.
  • As opções siteurl e home.

Nada disso se atualiza por si só. Ativar SSL e depois se perguntar por que o cadeado está quebrado é uma das perguntas de suporte mais comuns, e esta é a razão.

Passo 1: Forçar HTTPS no Servidor

Antes de tocar no banco de dados, certifique-se de que cada visitante está acessando HTTPS em primeiro lugar.

  1. Acesse KPanel e clique em Websites na barra lateral esquerda.
  2. Clique em seu site.
  3. Abra Settings.
  4. Em Behavior, ative Force HTTPS.
  5. Clique em Save Changes.

Configuração Force HTTPS em um site no KPanel

Cada requisição HTTP agora é redirecionada para HTTPS no servidor, antes de seu site ser executado.

Force HTTPS trata requisições que chegam. Não reescreve URLs já armazenadas dentro de seu banco de dados, então por si só não limpará um aviso de conteúdo misto causado por uma imagem http:// codificada. Você precisa deste e do Passo 2.

Se SSL ainda não está ativo ou o certificado parece errado, comece com SSL Certificates.

Passo 2: Reescrever as URLs Armazenadas

Este é o conserto que realmente resolve o conteúdo misto.

  1. Abra o site, depois a aba WordPress, depois a seção Quick Actions.
  2. Encontre o card Search & Replace e clique em Configure.
  3. Em Find (old value) entre com http://yourdomain.co.nz.
  4. Em Replace with entre com https://yourdomain.co.nz.
  5. Deixe Dry run (preview only, no changes) marcado e clique em Preview.
  6. Revise a contagem e o detalhamento por tabela.
  7. Desmarque Dry run, clique em Run e confirme.

Um backup completo é feito automaticamente antes da substituição, e cada tabela é coberta, incluindo aquelas criadas por plugins. Configurações serializadas de plugins são tratadas corretamente.

Não faça isso com uma query SQL no phpMyAdmin. WordPress armazena configurações de plugins e temas como strings serializadas que registram o comprimento de cada valor, então uma REPLACE() bruta as quebra e as configurações silenciosamente se reset para vazio. Não há reparo exceto restaurar um backup. A explicação completa está em Running a Search and Replace.

Se seu plano inclui o console, o comando equivalente é:

search-replace 'http://yourdomain.co.nz' 'https://yourdomain.co.nz' --all-tables --dry-run

Solte --dry-run para aplicá-lo e faça um backup você mesmo primeiro: o console não faz.

Passo 3: Limpar Cada Cache

Uma cópia em cache de uma página continuará servindo as antigas URLs HTTP muito tempo depois que o banco de dados for corrigido, razão pela qual as pessoas frequentemente pensam que a substituição não funcionou.

  1. WordPress, depois Quick Actions, depois Flush Cache.
  2. WordPress, depois Caching, depois Purge cache, se o cache de página completa está ligado.
  3. Performance, depois Kapsule CDN, depois Purge, se a CDN está ligada. Veja Purging the CDN Cache.
  4. Qualquer plugin de caching, em sua própria tela de configurações.
  5. Seu próprio navegador. Teste em uma janela privada para não ser enganado pelo seu próprio cache.

Passo 4: Encontrar o Que Resta

A maioria dos sites fica limpa após o Passo 2. Quando um aviso sobrevive, encontre o recurso exato em vez de adivinhar.

Console do navegador. Abra as ferramentas de desenvolvedor com F12, vá à aba Console e recarregue. Conteúdo misto aparece como um aviso explícito nomeando a URL completa do recurso problemático. Aquela URL diz qual plugin ou tema é responsável.

Aba Network. Filtre por http:// para listar cada requisição insegura que a página fez.

Fonte da página. Carregue a página, veja a fonte e procure por http://. Ignore qualquer coisa dentro de atributos xmlns e declarações de schema: esses são identificadores, não requisições.

Sobreviventes comuns e o que fazer sobre cada um:

O Que Você EncontraConserto
Uma imagem ou logo em uma configuração do personalizador de temaRe-carregar ou re-selecionar no personalizador
Um módulo do construtor de página com uma URL de imagem http:// digitadaEditar aquele módulo e corrigir a URL
Tabela de configurações próprias de um plugin sliderRe-salvar o slider, ou executar a busca e substituição com --all-tables
Uma fonte ou script de um domínio terceirizadoVerificar se o provedor oferece HTTPS. A maioria oferece agora. Trocar a URL
Um pixel de rastreamento ou embed de um fornecedor antigoSe o fornecedor não tem HTTPS, remova. É uma dependência quebrada, não um problema Kapsule
http:// codificado em um arquivo de template de temaEditar o template, ou melhor, usar https ou uma referência relativa ao protocolo

Se exatamente uma página é afetada e o resto do site está limpo, o culpado é conteúdo naquela página, não uma configuração de site inteiro. Abra-a no editor e procure pela mídia que ela incorpora.

Confirmando Que Está Corrigido

  1. Carregue o site em uma janela privada.
  2. O cadeado deve estar sólido, sem triângulo de aviso e sem indicação cruzada.
  3. Clique no cadeado. O navegador relata a conexão como segura sem nenhum aviso de conteúdo misto.
  4. Abra o console e recarregue mais uma vez. Zero avisos de conteúdo misto.
  5. Verifique uma página profunda, não apenas a página inicial: uma página interna, um post de blog com imagens e o checkout em uma loja.

Prevenindo Que Volte

  • Deixe Force HTTPS ligado. É uma configuração de uma linha que remove uma classe inteira de problemas.
  • Nunca digite uma URL completa http:// em conteúdo. Use a biblioteca de mídia, que agora armazena endereços HTTPS.
  • Verifique configurações de plugin após instalar qualquer coisa que peça uma URL.
  • Observe um aviso retornando após uma atualização de plugin. Alguns plugins reset suas próprias URLs armazenadas.
  • Re-execute a busca e substituição após qualquer migração, pois um banco de dados importado traz as URLs do host antigo com ele: Migrating a Website From cPanel.

Resolução de Problemas

O cadeado está bom para mim, quebrado para um colega. Página em cache. Peça a eles para recarregar em uma janela privada.

O site quebrou completamente após a substituição. Restaure o backup automático anterior: Restoring From a Backup.

O console mostra um aviso de conteúdo misto em um domínio que não é o meu. Um recurso de terceiros. Você não pode corrigir seu servidor: ou eles suportam HTTPS e você troca a URL, ou você descarta o recurso.

Tudo é HTTPS mas o site não carrega nada. Isso não é conteúdo misto. Comece com Website Not Loading e verifique o certificado em SSL Certificates.

Se você trabalhou através de tudo isto e o aviso persiste, envie um email para support@kapsulehost.com com a URL afetada e o texto exato do aviso do console do navegador.

Ainda precisa de ajuda?

Envie-nos um email para support@kapsulehost.com ou abra um chat no KPanel.

Abrir KPanel