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
siteurlehome.
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.
- Accedi a KPanel e fai clic su Websites nella barra laterale sinistra.
- Fai clic sul tuo sito.
- Apri Settings.
- Sotto Behavior, attiva Forza HTTPS.
- Fai clic su Salva modifiche.

Ogni richiesta HTTP viene ora reindirizzata a HTTPS al server, prima che il tuo sito sia eseguito.
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.
Passaggio 2: Riscrivi gli URL archiviati
Questa è la correzione che risolve effettivamente il contenuto misto.
- Apri il sito, poi la scheda WordPress, poi la sezione Azioni rapide.
- Trova la scheda Cerca e sostituisci e fai clic su Configure.
- In Trova (valore precedente) inserisci
http://yourdomain.co.nz. - In Sostituisci con inserisci
https://yourdomain.co.nz. - Lascia Prova (anteprima solo, nessuna modifica) spuntato e fai clic su Preview.
- Rivedi il conteggio e la suddivisione per tabella.
- 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.
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.
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.
- WordPress, poi Azioni rapide, poi Svuota cache.
- WordPress, poi Caching, poi Svuota la cache, se la cache della pagina intera è attiva.
- Performance, poi Kapsule CDN, poi Purge, se la CDN è attiva. Vedi Purging the CDN Cache.
- Qualsiasi plugin di caching, dalla sua schermata di impostazioni.
- 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 |
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
- Carica il sito in una finestra privata.
- Il lucchetto dovrebbe essere solido, senza triangolo di avvertimento e senza indicazione cancellata.
- Fai clic sul lucchetto. Il browser segnala la connessione come sicura senza avviso di contenuto misto.
- Apri la console e ricarica ancora una volta. Zero avvisi di contenuto misto.
- 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.
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.
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 e controlla il certificato su SSL Certificates.
Se hai affrontato tutto questo e l'avviso persiste, invia un'email a support@kapsulehost.com con l'URL interessato e il testo esatto dell'avviso della console del browser.