# Corrigir Avisos de Conteúdo Misto Após Ativar HTTPS

Source: https://support.kapsulehost.com/pt-pt/ssl-mixed-content

## O Que É Conteúdo Misto

Um navegador trata uma página como segura apenas se a página e tudo o que ela carrega chegarem através de HTTPS. Se uma página HTTPS puxa uma imagem, script, folha de estilos, fonte ou iframe de um endereço `http://`, o navegador marca-a.

Os navegadores dividem isto em duas categorias, e comportam-se de forma muito diferente:

- **Conteúdo misto ativo**: scripts, folhas de estilos, iframes e XHR. Os navegadores bloqueiam-nos completamente. Os layouts colapsam, os sliders param, os formulários deixam de ser submetidos. Este é o tipo destrutivo.
- **Conteúdo misto passivo**: imagens, áudio e vídeo. Estes normalmente ainda carregam, mas o cadeado é desclassificado ou removido.

Um site pode portanto parecer completamente fine e ainda assim estar a perder o seu cadeado, ou parecer quebrado sem nenhum erro óbvio na página em si.

## Por Que Acontece Depois de Ativar SSL

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

WordPress escreve URLs absolutas na base de dados, por isso um site que funcionava em HTTP durante qualquer período de tempo tem endereços `http://` guardados em:

- Conteúdo de posts e páginas, incluindo todas as imagens inseridas através do editor.
- Registos de anexos de mídia.
- Configurações do personalizador de temas e opções de temas.
- Conteúdo de widgets e configurações de blocos.
- Configurações de plugins, particularmente construtores de páginas e plugins de sliders.
- As opções `siteurl` e `home`.

Nada isto se atualiza sozinho. Ativar SSL e depois questionar-se por que é que o cadeado está quebrado é uma das questões de suporte mais comuns, e esta é a razão.

## Passo 1: Forçar HTTPS no Servidor

Antes de tocar na base de dados, certifique-se de que todos os visitantes estão a chegar em HTTPS em primeiro lugar.

1. Inicie sessão em [KPanel](https://kpanel.kapsulehost.com) e clique em **Websites** na barra lateral esquerda.
2. Clique no seu site.
3. Abra **Settings**.
4. Sob **Behavior**, ative **Forçar HTTPS**.
5. Clique em **Guardar Alterações**.

![A configuração Forçar HTTPS sob Comportamento na página Definições para um site em KPanel](https://support.kapsulehost.com/help/screenshots/ssl-mixed-content.6758a2bb.webp)

Todos os pedidos HTTP são agora redirecionados para HTTPS no servidor, antes do seu site ser executado.

> **Note:** Forçar HTTPS trata dos pedidos que chegam. Não reescreve URLs já armazenadas na sua base de dados, portanto por si só não limpará um aviso de conteúdo misto causado por uma imagem `http://` codificada. Precisa de ambas as coisas: isto e o Passo 2.

Se SSL ainda não estiver ativo, ou o certificado parecer errado, comece com [Certificados SSL](https://support.kapsulehost.com/pt-pt/ssl-certificates).

## Passo 2: Reescrever os URLs Armazenados

Esta é a correção que realmente resolve o conteúdo misto.

1. Abra o site, depois o separador **WordPress**, depois a secção **Ações Rápidas**.
2. Encontre o cartão **Procurar e Substituir** e clique em **Configure**.
3. Em **Localizar (valor antigo)** introduza `http://yourdomain.co.nz`.
4. Em **Substituir por** introduza `https://yourdomain.co.nz`.
5. Deixe **Execução de teste (apenas pré-visualização, sem alterações)** marcada e clique em **Preview**.
6. Reveja a contagem e o resumo por tabela.
7. Desmarque **Execução de teste**, clique em **Run**, e confirme.

Uma cópia de segurança completa é feita automaticamente antes da substituição, e cada tabela é abrangida, incluindo as criadas por plugins. As configurações de plugins serializadas são tratadas corretamente.

> **Warning:** Não faça isto com uma consulta SQL em phpMyAdmin. WordPress armazena configurações de plugins e temas como strings serializadas que registam o comprimento de cada valor, portanto uma `REPLACE()` bruta quebra-as e as configurações repõem-se silenciosamente para vazias. Não há reparação exceto restaurar uma cópia de segurança. A explicação completa está em [Executar uma Procura e Substituição](https://support.kapsulehost.com/pt-pt/wordpress-search-replace).

Se o seu plano inclui a consola, o comando equivalente é:

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

Solte `--dry-run` para o aplicar, e faça uma cópia de segurança você mesmo primeiro: a consola não o faz.

## Passo 3: Limpar Todas as Caches

Uma cópia em cache de uma página continuará a servir os URLs HTTP antigos muito depois da base de dados estar corrigida, razão pela qual as pessoas muitas vezes pensam que a substituição não funcionou.

1. **WordPress**, depois **Ações Rápidas**, depois **Limpar Cache**.
2. **WordPress**, depois **Caching**, depois **Limpar a cache**, se a cache de página completa estiver ativa.
3. **Performance**, depois **Kapsule CDN**, depois **Purge**, se o CDN estiver ativo. Veja [Purgar a Cache CDN](https://support.kapsulehost.com/pt-pt/cdn-cache-purge).
4. Qualquer plugin de cache, a partir do seu próprio ecrã de configurações.
5. O seu próprio navegador. Teste numa janela privada para não ser enganado pela sua própria cache.

## Passo 4: Encontrar O Que Resta

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

**Consola do navegador.** Abra as ferramentas de desenvolvedor com F12, vá para o separador **Console**, e recarregue. O conteúdo misto aparece como um aviso explícito nomeando o URL completo do recurso ofensor. Esse URL diz-lhe qual plugin ou tema é responsável.

**Separador Network.** Filtre por `http://` para listar cada pedido inseguro que a página fez.

**Fonte da página.** Carregue a página, veja a fonte, e procure por `http://`. Ignore tudo dentro de atributos `xmlns` e declarações de schema: essas são identificadores, não pedidos.

Sobreviventes comuns, e o que fazer sobre cada um:

| O que encontra | Correção |
|---|---|
| Uma imagem ou logótipo numa configuração do personalizador de temas | Re-envie ou re-selecione no personalizador |
| Um módulo de construtor de página com um URL de imagem `http://` digitado | Edite esse módulo e corrija o URL |
| Tabela própria de configurações do plugin slider | Re-guarde o slider, ou execute a procura e substituição com `--all-tables` |
| Uma fonte ou script de um domínio de terceiros | Verifique se o fornecedor oferece HTTPS. A maioria oferece agora. Mude o URL |
| Um pixel de rastreamento ou incorporação de um fornecedor antigo | Se o fornecedor não tiver HTTPS, remova-o. É uma dependência quebrada, não um problema de KapsuleHost |
| `http://` codificado num ficheiro de modelo de tema | Edite o modelo, ou melhor, use `https` ou uma referência relativa ao protocolo |

> **Tip:** Se exatamente uma página é afetada e o resto do site está limpo, o culpado é conteúdo nessa página, não uma configuração de site wide. Abra-a no editor e veja a mídia que incorpora.

## Confirmando Que Está Corrigido

1. Carregue o site numa janela privada.
2. O cadeado deve estar sólido, sem triângulo de aviso e sem indicação cortada.
3. Clique no cadeado. O navegador relata a ligação como segura sem aviso de conteúdo misto.
4. Abra a consola e recarregue mais uma vez. Avisos de conteúdo misto zero.
5. Verifique uma página profunda, não apenas a página inicial: uma página interior, uma publicação de blog com imagens, e o checkout numa loja.

## Evitar Que Volte

- **Deixe Forçar HTTPS ligado.** É uma configuração de uma linha que remove uma classe inteira de problema.
- **Nunca digite um URL `http://` completo em conteúdo.** Use a biblioteca de mídia, que agora armazena endereços HTTPS.
- **Verifique as configurações do plugin após instalar qualquer coisa** que peça um URL.
- **Observe um aviso de retorno após uma atualização de plugin.** Alguns plugins repõem os seus próprios URLs armazenados.
- **Re-execute a procura e substituição após qualquer migração**, uma vez que uma base de dados importada traz os URLs do host antigo consigo: [Migrar um Website De cPanel](https://support.kapsulehost.com/pt-pt/sites-migrate-cpanel).

## Resolução de Problemas

**O cadeado está bem para mim, quebrado para um colega.** Página em cache. Peça-lhe para recarregar numa janela privada.

**O site quebrou completamente após a substituição.** Restaure a cópia de segurança automática de pré-execução: [Restaurar De uma Cópia de Segurança](https://support.kapsulehost.com/pt-pt/restoring-from-backup).

**A consola mostra um aviso de conteúdo misto num domínio que não é meu.** Um recurso de terceiros. Não pode corrigir o seu servidor: ou suportam HTTPS e muda o URL, ou elimina o recurso.

**Tudo é HTTPS mas o site não carrega completamente.** Isso não é conteúdo misto. Comece com [Website Não Carregando](https://support.kapsulehost.com/pt-pt/website-not-loading) e verifique o certificado em [Certificados SSL](https://support.kapsulehost.com/pt-pt/ssl-certificates).

Se trabalhou através de tudo isto e o aviso persiste, envie um e-mail para [support@kapsulehost.com](mailto:support@kapsulehost.com) com o URL afetado e o texto exato do aviso da consola do navegador.
