# Correzione degli avvisi di contenuto misto dopo l'attivazione di HTTPS

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

## Che cos'è il contenuto misto

Un browser tratta una pagina come sicura solo se la pagina e tutto ciò che carica provengono da HTTPS. Se una pagina HTTPS recupera un'immagine, script, foglio di stile, font o iframe da un indirizzo `http://`, il browser lo segnala.

I browser dividono questo in due categorie e si comportano in modo molto diverso:

- **Contenuto misto attivo**: script, fogli di stile, iframe e XHR. I browser li bloccano completamente. I layout crollano, i cursori si fermano, i moduli smettono di inviare. Questo è il tipo distruttivo.
- **Contenuto misto passivo**: immagini, audio e video. Di solito caricano ancora, ma il lucchetto viene declassato o rimosso.

Un sito può quindi apparire completamente fine e comunque perdere il suo lucchetto, oppure apparire danneggiato senza un errore ovvio nella pagina stessa.

## Perché accade dopo l'abilitazione di SSL

L'attivazione di SSL cambia il modo in cui il sito viene servito. Non cambia ciò che è memorizzato al suo interno.

WordPress scrive URL assoluti nel database, quindi un sito eseguito su HTTP per un certo periodo ha indirizzi `http://` salvati in:

- Contenuto di articoli e pagine, inclusa ogni immagine inserita tramite l'editor.
- Record di allegati multimediali.
- Impostazioni del tema personalizzato e opzioni tema.
- Contenuto dei widget e impostazioni dei blocchi.
- Impostazioni dei plugin, in particolare page builder e plugin slider.
- Le opzioni `siteurl` e `home`.

Nessuno di questi si aggiorna automaticamente. Abilitare SSL e poi chiedersi perché il lucchetto è rotto è una delle domande di supporto più comuni, ed è per questo.

## Passaggio 1: Forza HTTPS al server

Prima di toccare il database, assicurati che ogni visitatore arrivi su HTTPS in primo luogo.

1. Accedi a [KPanel](https://kpanel.kapsulehost.com) e fai clic su **Websites** nella barra laterale sinistra.
2. Fai clic sul tuo sito.
3. Apri **Settings**.
4. Sotto **Behavior**, attiva **Forza HTTPS**.
5. Fai clic su **Salva modifiche**.

![L'impostazione Forza HTTPS sotto Behavior sulla pagina Impostazioni per un sito in KPanel](https://support.kapsulehost.com/help/screenshots/ssl-mixed-content.6758a2bb.webp)

Ogni richiesta HTTP viene ora reindirizzata a HTTPS al server, prima che il tuo sito sia eseguito.

> **Note:** Forza HTTPS gestisce le richieste in arrivo. Non riscrive gli URL già archiviati nel database, quindi da solo non cancellerà un avviso di contenuto misto causato da un'immagine `http://` hardcoded. Hai bisogno sia di questo che del Passaggio 2.

Se SSL non è ancora attivo o il certificato appare errato, inizia con [SSL Certificates](https://support.kapsulehost.com/it-it/ssl-certificates).

## Passaggio 2: Riscrivi gli URL archiviati

Questa è la correzione che risolve effettivamente il contenuto misto.

1. Apri il sito, poi la scheda **WordPress**, poi la sezione **Azioni rapide**.
2. Trova la scheda **Cerca e sostituisci** e fai clic su **Configure**.
3. In **Trova (valore precedente)** inserisci `http://yourdomain.co.nz`.
4. In **Sostituisci con** inserisci `https://yourdomain.co.nz`.
5. Lascia **Prova (anteprima solo, nessuna modifica)** spuntato e fai clic su **Preview**.
6. Rivedi il conteggio e la suddivisione per tabella.
7. Deseleziona **Prova**, fai clic su **Run** e conferma.

Un backup completo viene eseguito automaticamente prima della sostituzione e ogni tabella è coperta, incluse quelle create da plugin. Le impostazioni dei plugin serializzate sono gestite correttamente.

> **Warning:** Non fare questo con una query SQL in phpMyAdmin. WordPress archivia le impostazioni dei plugin e del tema come stringhe serializzate che registrano la lunghezza di ogni valore, quindi una `REPLACE()` grezza le rompe e le impostazioni vengono silenziosamente ripristinate a vuote. Non c'è riparazione al di fuori del ripristino di un backup. La spiegazione completa è in [Running a Search and Replace](https://support.kapsulehost.com/it-it/wordpress-search-replace).

Se il tuo piano include la console, il comando equivalente è:

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

Rimuovi `--dry-run` per applicarlo e fai tu stesso un backup prima: la console non lo fa.

## Passaggio 3: Svuota ogni cache

Una copia memorizzata nella cache di una pagina continuerà a servire i vecchi URL HTTP molto tempo dopo che il database è stato riparato, motivo per cui spesso le persone pensano che la sostituzione non abbia funzionato.

1. **WordPress**, poi **Azioni rapide**, poi **Svuota cache**.
2. **WordPress**, poi **Caching**, poi **Svuota la cache**, se la cache della pagina intera è attiva.
3. **Performance**, poi **Kapsule CDN**, poi **Purge**, se la CDN è attiva. Vedi [Purging the CDN Cache](https://support.kapsulehost.com/it-it/cdn-cache-purge).
4. Qualsiasi plugin di caching, dalla sua schermata di impostazioni.
5. Il tuo browser. Prova in una finestra privata in modo da non essere ingannato dalla tua stessa cache.

## Passaggio 4: Trova quello che rimane

La maggior parte dei siti è pulita dopo il Passaggio 2. Quando un avviso sopravvive, trova la risorsa esatta piuttosto che indovinare.

**Console del browser.** Apri gli strumenti per sviluppatori con F12, vai alla scheda **Console** e ricarica. Il contenuto misto appare come un avviso esplicito che nomina l'URL completo della risorsa offensiva. Quell'URL ti dice quale plugin o tema è responsabile.

**Scheda Rete.** Filtra per `http://` per elencare ogni richiesta non sicura che la pagina ha effettuato.

**Sorgente della pagina.** Carica la pagina, visualizza la sorgente e cerca `http://`. Ignora tutto dentro gli attributi `xmlns` e le dichiarazioni dello schema: questi sono identificatori, non richieste.

Sopravviventi comuni e cosa fare con ognuno:

| Quello che trovi | Correzione |
|---|---|
| Un'immagine o un logo in un'impostazione del tema personalizzato | Carica di nuovo o riscegliela nel personalizzatore |
| Un modulo page builder con un URL immagine `http://` digitato | Modifica quel modulo e correggi l'URL |
| Tabella di impostazioni propria di un plugin slider | Risalva lo slider oppure esegui la ricerca e la sostituzione con `--all-tables` |
| Un font o script da un dominio di terze parti | Verifica se il provider offre HTTPS. La maggior parte lo fa adesso. Cambia l'URL |
| Un pixel di tracciamento o un embed da un vecchio fornitore | Se il fornitore non ha HTTPS, rimuovilo. È una dipendenza danneggiata, non un problema KapsuleHost |
| `http://` hardcoded in un file di modello del tema | Modifica il modello, oppure meglio, usa `https` o un riferimento relativo al protocollo |

> **Tip:** Se è interessata esattamente una pagina e il resto del sito è pulito, il colpevole è il contenuto su quella pagina, non un'impostazione a livello di sito. Aprila nell'editor e guarda il media che contiene.

## Confermare che sia risolto

1. Carica il sito in una finestra privata.
2. Il lucchetto dovrebbe essere solido, senza triangolo di avvertimento e senza indicazione cancellata.
3. Fai clic sul lucchetto. Il browser segnala la connessione come sicura senza avviso di contenuto misto.
4. Apri la console e ricarica ancora una volta. Zero avvisi di contenuto misto.
5. Controlla una pagina profonda, non solo la home page: una pagina interna, un articolo di blog con immagini e il checkout su un negozio.

## Prevenire il ritorno

- **Lascia Forza HTTPS attiva.** È un'impostazione di una riga che rimuove un'intera classe di problemi.
- **Non digitare mai un URL completo `http://` nel contenuto.** Usa la libreria multimediale, che ora archivia indirizzi HTTPS.
- **Controlla le impostazioni dei plugin dopo l'installazione di qualsiasi cosa** che chieda un URL.
- **Osserva un avviso di ritorno dopo un aggiornamento del plugin.** Alcuni plugin ripristinano i loro URL archiviati.
- **Riesegui la ricerca e la sostituzione dopo qualsiasi migrazione**, poiché un database importato porta con sé gli URL dell'host precedente: [Migrating a Website From cPanel](https://support.kapsulehost.com/it-it/sites-migrate-cpanel).

## Risoluzione dei problemi

**Il lucchetto va bene per me, rotto per un collega.** Pagina memorizzata nella cache. Fagli ricaricare in una finestra privata.

**Il sito si è rotto completamente dopo la sostituzione.** Ripristina il backup di pre-esecuzione automatico: [Restoring From a Backup](https://support.kapsulehost.com/it-it/restoring-from-backup).

**La console mostra un avviso di contenuto misto su un dominio che non è il mio.** Una risorsa di terze parti. Non puoi riparare il loro server: o supportano HTTPS e cambi l'URL, o rilasci la risorsa.

**Tutto è HTTPS ma il sito non si carica affatto.** Non è contenuto misto. Inizia con [Website Not Loading](https://support.kapsulehost.com/it-it/website-not-loading) e controlla il certificato su [SSL Certificates](https://support.kapsulehost.com/it-it/ssl-certificates).

Se hai affrontato tutto questo e l'avviso persiste, invia un'email a [support@kapsulehost.com](mailto:support@kapsulehost.com) con l'URL interessato e il testo esatto dell'avviso della console del browser.
