Uno degli errori più comuni nel passaggio da HTTP ad HTTPS è dato dal “mixed content” ovvero il contenuto misto.
Come si può vedere nell’immagine, il browser segnala un problema indicando che la connessione al sito web non è completamente protetta, pur essendo presente un certificato SSL valido.
Per la visualizzazione di un sito web il protocollo di comunicazione utilizzato tra il client (il browser) ed il server (dove c’è il sito web) è HTTP. In presenza di un certificato SSL, la comunicazione può avvenire con il protocollo HTTPS. Quella “S” in più alla fine sta per sicuro in quanto la comunicazione e tutti i dati scambiati da client e server sono criptati.
Il significato è abbastanza chiaro, il contenuto della pagina è misto quindi alcuni contenuti della pagina sono disponibili in HTTPS ed altri soltanto in HTTP. Si tratta di un errore abbastanza comune soprattutto durante il passaggio da HTTP ad HTTPS ed è generalmente causato dalla presenza di link “statici” all’interno della pagina.
Statisticamente abbiamo notato che nella maggior parte dei casi si tratta del logo o di immagini presenti all’interno della pagina, ma a volte anche javascript o css.
ATTENZIONE: avete notato che parlo di pagina e non di sito?
Il contenuto misto è un problema che si verifica a livello di pagina, quindi si dovrebbero controllare tutte le pagine del sito web per essere sicuri.
Anche se la home page viene considerata sicura, non è detto che lo siano tutte le pagine.
Per correggere l’errore, bisogna identificare quali contenuti siano ancora serviti in HTTP e non in HTTPS. Per farlo è possibile utilizzare il browser Firefox ed eseguire i passaggi indicati nelle immagini seguenti.
Cliccando sulla “i” nella barra degli indirizzi accanto all’indirizzo del sito web si apre questa finestrella. Cliccare sulla freccetta cerchiata in rosso per ottenere la finestra che segue e cliccare quindi su “Ulteriori informazioni”.
A questo punto nel tab “media” è possibile identificare quali risorse della pagina vengono servite in http e non https:
Analizzando il contenuto della pagina si possono vedere quali richieste vengono fatte al server utilizzando il protocollo HTTP e non HTTPS. Come dicevo precedentemente, il problema è causato da qualche link inserito “staticamente” all’interno delle pagine.
Per correggere l’errore è necessario modificare i link alle immagini o ad altre risorse identificate modificando http:// con https:// nel codice della pagina.
Un altro metodo più “smart” è utilizzare semplicemente il doppio slash “//“ senza indicare il protocollo in modo che sia il browser a scegliere quale protocollo utilizzare in base allo schema utilizzato dalla pagina stessa (se HTTPS utilizzerà HTTPS, se HTTP utilizzerà HTTP).