Siti web

Risoluzione degli avvisi di contenuto misto dopo l'abilitazione di 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…

Correzione degli Avvisi di Contenuto Misto Dopo l'Abilitazione di HTTPS

Quando SSL è attivo ma il lucchetto del browser manca, è rotto o mostra un avviso, la causa è quasi sempre il contenuto misto: la pagina stessa è crittografata ma qualcosa su di essa viene ancora recuperato tramite HTTP semplice. Questa guida spiega perché accade, come trovare ogni risorsa offensiva e come correggerla correttamente invece di nascondere il problema.

Che Cos'è il Contenuto Misto

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

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

  • Contenuto misto attivo: script, fogli di stile, iframe e XHR. I browser bloccano questi completamente. I layout si collassano, i cursori si fermano, i moduli smettono di inviare. Questo è il tipo distruttivo.
  • Contenuto misto passivo: immagini, audio e video. Questi di solito caricano comunque, ma il lucchetto viene declassato o rimosso.

Un sito può quindi sembrare completamente funzionante e comunque perdere il lucchetto, oppure apparire rotto senza alcun errore ovvio nella pagina stessa.

Perché Accade Dopo l'Abilitazione di SSL

L'attivazione di SSL cambia il modo in cui il tuo sito viene servito. Non cambia cosa è archiviato al suo interno.

WordPress scrive URL assoluti nel database, quindi un sito che è stato eseguito su HTTP per qualsiasi periodo di tempo ha indirizzi http:// salvati in:

  • Contenuto di post e pagine, inclusa ogni immagine inserita tramite l'editor.
  • Record di allegati media.
  • Impostazioni personalizzatore tema e opzioni tema.
  • Contenuto widget e impostazioni blocchi.
  • Impostazioni plugin, in particolare page builder e plugin slider.
  • Le opzioni siteurl e home.

Nulla di questo si aggiorna da solo. Abilitare SSL e poi chiedersi perché il lucchetto è rotto è una delle domande di supporto più comuni, e questo è il motivo.

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 e fai clic su Websites nella barra laterale sinistra.
  2. Fai clic sul tuo sito.
  3. Apri Settings.
  4. In Behavior, attiva Force HTTPS.
  5. Fai clic su Save Changes.

Impostazione Force HTTPS su un sito in KPanel

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

Force HTTPS gestisce le richieste in arrivo. Non riscrive gli URL già archiviati nel tuo 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 oppure il certificato sembra errato, inizia con SSL Certificates.

Passaggio 2: Riscrivi gli URL Archiviati

Questa è la correzione che in realtà risolve il contenuto misto.

  1. Apri il sito, quindi la scheda WordPress, quindi la sezione Quick Actions.
  2. Trova la card Search & Replace e fai clic su Configure.
  3. In Find (old value) inserisci http://yourdomain.co.nz.
  4. In Replace with inserisci https://yourdomain.co.nz.
  5. Lascia Dry run (preview only, no changes) selezionato e fai clic su Preview.
  6. Rivedi il conteggio e il dettaglio per tabella.
  7. Deseleziona Dry run, fai clic su Run e conferma.

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

Non farlo con una query SQL in phpMyAdmin. WordPress archivia le impostazioni di plugin e tema come stringhe serializzate che registrano la lunghezza di ogni valore, quindi un REPLACE() grezzo le rompe e le impostazioni si ripristinano silenziosamente a vuote. Non c'è riparazione se non ripristinare 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

Rilascia --dry-run per applicarlo e fai un backup tu stesso per primo: la console non lo fa.

Passaggio 3: Cancella 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 le persone spesso pensano che la sostituzione non ha funzionato.

  1. WordPress, quindi Quick Actions, quindi Flush Cache.
  2. WordPress, quindi Caching, quindi Purge cache, se la cache a pagina intera è attiva.
  3. Performance, quindi Kapsule CDN, quindi Purge, se la CDN è attiva. Vedi Purging the CDN Cache.
  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 Ciò 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 Network. Filtra per http:// per elencare ogni richiesta non sicura che la pagina ha fatto.

Sorgente pagina. Carica la pagina, visualizza la sorgente e cerca http://. Ignora qualsiasi cosa dentro attributi xmlns e dichiarazioni di schema: questi sono identificatori, non richieste.

Sopravvissuti comuni e cosa fare per ognuno:

Quello che troviCorrezione
Un'immagine o logo in un'impostazione personalizzatore temaRicarica o riselezionalo nel personalizzatore
Un modulo page builder con un URL immagine http:// digitatoModifica quel modulo e correggi l'URL
Tabella di impostazioni proprie di un plugin sliderRisalva il slider, oppure esegui la ricerca e sostituzione con --all-tables
Un carattere o script da un dominio di terze partiVerifica se il provider offre HTTPS. La maggior parte lo fa ormai. Cambia l'URL
Un pixel di tracciamento o embed da un vecchio fornitoreSe il fornitore non ha HTTPS, rimuovilo. È una dipendenza interrotta, non un problema Kapsule
http:// hardcoded in un file template temaModifica il template, o meglio, usa https o un riferimento relativo al protocollo

Se esattamente una pagina è interessata 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 i media che incorpora.

Confermare che Sia Risolto

  1. Carica il sito in una finestra privata.
  2. Il lucchetto dovrebbe essere solido, senza triangolo di avviso e senza indicazione barrata.
  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 post del blog con immagini e il checkout su uno store.

Prevenire il Ritorno

  • Lascia Force HTTPS attivo. È un'impostazione di una riga che elimina un'intera classe di problemi.
  • Non digitare mai un URL completo http:// nel contenuto. Usa la libreria media, che ora archivia indirizzi HTTPS.
  • Controlla le impostazioni del plugin dopo aver installato qualsiasi cosa che chiede un URL.
  • Guarda un avviso ricorrente dopo un aggiornamento del plugin. Alcuni plugin ripristinano i loro URL archiviati.
  • Esegui di nuovo la ricerca e sostituzione dopo qualsiasi migrazione, poiché un database importato porta gli URL del vecchio host con sé: Migrating a Website From cPanel.

Risoluzione dei Problemi

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

Il sito si è rotto completamente dopo la sostituzione. Ripristina il backup 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 tu cambi l'URL, oppure rilasci la risorsa.

Tutto è HTTPS ma il sito non caricherà 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.

Hai ancora bisogno di aiuto?

Scrivici a support@kapsulehost.com oppure apri una chat in KPanel.

Apri KPanel
Risoluzione degli avvisi di contenuto misto dopo l'abilitazione di HTTPS