Come passare da http a https con WordPress

13 Luglio 2020 / Pubblicato in:  da Ivan Messina
10 Commenti

Abbiamo pubblicato sul nostro blog delle informazioni relative a Google Chrome e come si comporterà in futuro relativamente ai siti che non usano una connessione sicura https.

In questo articolo andremo a vedere come passare da http a https con WordPress in pochi semplici passi.

Sia che usi un CMS come WordPress o Joomla sia che tu abbia creato un sito statico in HTML dovrai eseguire delle modifiche in modo da offrire la connessione sicura HTTPS a tutti i visitatori del tuo sito web.

Google ha fatto molti sforzi per cercare di far diventare il web più sicuri. Usare una connessione sicura comporta dei vantaggi SEO e dei dati sui referral più accurati.

In pratica se vuoi passare da http ad https questo è il momento giusto per farlo.

Molti nostri clienti ci stanno chiedendo, dopo aver attivato la connessione cifrata per il loro sito web, come possono fare per visualizzare il loro sito web tramite https e non più tramite http.

Ma come prima cosa vediamo cos'è HTTPS e perché è importante per il tuo sito web eseguire questo passaggio.

Cos'è HTTPS?

HTTPS è un acronimo che sta per Hyper Text Transfer Protocol Secure, è un protocollo per rendere sicure le comunicazioni tra browser e server.

Nell'immagine sotto mostriamo le differenze tra una comunicazione sicura ed una non sicura.

Comunicazione Https
Differenze di comunicazione tra http e https

Come puoi vedere la comunicazione tra il browser ed il server viene criptata. Questo impedisce agli hacker di leggere e modificare i dati durante la comunicazione tra il server e il browser.

Quindi anche se un hacker è in grado di intercettare la tua comunicazione non sarebbe in grado di leggerla grazie alla cifratura.

Questo ci fa capire perché usare la connessione sicura è necessario quando c'è un invio di dati personali sensibili. Ogni sito web che usa delle credenziali di login dovrebbe usare una connessione sicura.

Come funziona HTTPS

HTTPS cripta tutte le comunicazione tra il browser ed il server usando un protocollo di criptazione. Questo protocollo è chiamato Transport Layer Security (TLS), conosciuto prima come Secure Sockets Layer (SSL).

Questo protocollo protegge le comunicazioni usando un sistema chiamato asymmetric public key infrastructure. Questo sistema usa due diverse chiavi per cifrare la comunicazione tra le parti.

  • Chiave privata: questa chiave viene mantenuta dal gestore del sito e viene mantenuta privata. questa chiave viene usata per decifrare le informazioni criptate dal browser con la chiave pubblica.
  • Chiave pubblica: questa chiave è disponibile a tutti quelli che vogliono interagire col sito. Le informazioni criptate con questa chiave possono essere decriptate solamente usando la chiave privata.

Tecnicamente HTTPS non è altro che una connessione HTTP che usa una cifratura TSL/SSL.

Quando un utente si connette ad un pagina web, la pagina invia il suo certificato SSL che contiene la chiave pubblica, necessaria ad iniziare la sessione sicura.

A questo punto il browser ed il server eseguono un processo chiamato SSL/TSL handshake (traduzione: stretta di mano) che è una serie di comunicazioni tra loro volte a stabilire una connessione sicura.

Adozione di HTTPS

Nel tempo sempre più siti stanno usando la connessione sicura HTTPS. Su Builtwith vediamo le percentuali di adozione.

Il 90.99% tra i primi 10.000 siti a livello mondiale usano SSL.

Adozione Ssl 1

Il 87.05% tra i primi 100.000 siti a livello mondiale usano SSL.

Adozione Ssl 2

Il 70.47% tra il primo milione di siti a livello mondiale usano SSL.

Adozione Ssl 3

In questi grafici vediamo inoltre come negli anni sempre più siti stanno usando la connessione sicura.

Moszcast ci mostra come il 97.5% delle query sono in https, un notevole incremento rispetto al 26% di gennaio 2016 ed al 77% di febbario 2018.

Query Https Su Google

Anche Google sta andando verso quella direzione, cercando di raggiungere il 100% di crittografia sui loro prodotti:

Adozione Https Google

Stando ai dati di Firefox e Let's Encrypt oltre l'80% dei siti al momento caricano usando una connessione sicura. Un notevole incremento rispetto al 27% del 2014.

Adozione Ssl Firefox

Ovviamente non ti consigliamo di usare HTTPS solo perché tutti lo fanno. Usare HTTPS comporta dei vantaggi, vediamo quali.

Quali vantaggi abbiamo usando HTTPS?

Come dicevo prima, ci sono vari vantaggi nell'utilizzo della connessione sicura HTTPS. Vediamo quindi perché dovremmo decidere di usarla sul nostro sito.

A mio avviso questo è uno di quei casi in cui in realtà conviene chiedersi perché no. Ad oggi la maggior parte dei servizi hosting offrono il certificato SSL incluso nel prezzo, noi ovviamente siamo tra quelli. E seguendo questa guida in pochi semplici passi puoi impostare WordPress per usare correttamente HTTPS.

Quindi perché non vorresti usare la soluzione sicura? Ma vediamo comunque quali vantaggi ci porta.

Sicurezza

Non ci sono bisogno di troppe spiegazioni. I motivo principale per cui vuoi usare la connessione cifrata è per questioni di sicurezza.

Come ho spiegato sopra l'utilizzo di una soluzione crittografata garantisce una sicurezza durante la trasmissione dei dati personali degli utenti. Per questo motivo il corretto utilizzo di una connessione sicura è assolutamente raccomandato (anche se non obbligatorio per legge) su tutti quei siti che gestiscono dati sensibili degli utenti, come ad esempio i siti e-commerce.

Anche se il tuo sito non gestisce i dati personali degli utenti, magari si tratta di un semplice blog, sicuramente dovrai di tanto in tanto eseguire il login per aggiungere o modificare un contenuto. In quel caso la tua password sarebbe inviata in chiaro se usi HTTP invece di HTTPS col risultato che potresti essere vittime di un attacco tipo man in the middle ed un hacker potrebbe avere accesso al tuo sito.

Prestazioni

usando HTTPS puoi usare HTTP/2 che consente il download parallelo dei files.

Oltre ad HTTP/2 puoi usare la compression HPACK con codifica Huffman, il server push e l'estensione ALPN.

In passato usare una connessione cifrata aggiungeva carico al server, ma adesso questo fenomeno è di molto ridotto.

SEO

Dal 2014 Google ha dichiarato che HTTPS è un fattore di ranking. Nonostante sia un fattore che ha meno peso di altri, vale la pena usarlo per cercare di battere la concorrenza, o quantomeno non restare indietro in un mondo dove la stragrande maggioranza dei siti usano la connessione cifrata.

Un'analisi di 1 milione di url fatta da Mattew Barby fa notare una correlazione tra le prime posizioni e l'adozione di HTTP.

Https Seo

Referral

Se usi Google analytics puoi vedere i referral, ovvero da quali pagine arrivano i tuoi utenti.

Se un utente passa da un sito con una connessione HTTPS al tuo sito in HTTP il referral viene perso, e quell'utente sarà visto come traffico diretto.

Se invece l'utente passa da un pagina con HTTP ad una pagina con HTTPS il referral viene trasmesso.

Se quindi vuoi avere delle informazioni più precise all'interno di Google Analytics assicurati di usare il protocollo HTTPS correttamente.

Fiducia

Un sondaggio di Globalsign dimostra come il 28.9% dei visitatori cerca il lucchetto verde nella barra degli indirizzi del browser. Inoltre il 77% è preoccupato che i loro dati possano venire intercettati ed utilizzati.

Puoi sfruttare questo a tuo vantaggio, dando una maggiore fiducia ai tuoi utenti mostrando il lucchetto verde nel browser.

Avvisi del browser

Ad oggi praticamente tutti i browser mostrano un avviso se la connessione non è sicura. Come ho detto nel paragrafo precedente molti utenti sono preoccupati per i loro dati, un alert di sito non sicuro mostrato nel browser non è certo il modo per guadagnare la loro fiducia.

Https Fiducia

Quale certificato scegliere

Inizio col dire che su tutti gli account hosting di SupportHost hai a disposizione il certificato SSL gratuito di Let's Encrypt. Questo viene attivato in automatico dal server alle 1 di notte. Nota che il dominio deve puntare correttamente al server per poter generare il certificato SSL.

Se hai esigenze specifiche puoi scegliere uno dei nostri certificati SSL a pagamento. In un altro articolo parlo nel dettaglio come scegliere un certificato SSL. Vediamo quali sono le differenze tra i vari certificati a pagamento.

  • Domain Validation: questi sono i certificati SSL più economici che convalidano il dominio tramite email o dns. Permettono di generare un certificato SSL in pochi minuti senza dover inviare alcun tipo di documentazione.
  • Organization validation: questo tipo di certificato convalida la tua organizzazione/azienda. Solitamente occorrono 2-3 giorni per la validazione ed è necessaria una documentazione.
  • Extended validation: questo certificato richiede una convalida estesa della tua azienda e tempi di rilascio sono di 2-7 giorni. Questo tipo di certificato ti permette di avere la Green bar come vedi in alcuni siti importanti e siti bancari.

Come installare il certificato SSL

Se il tuo sito è ospitato con noi non devi far niente. Il certificato viene installato in automatico sui nostri server.

Ogni notte all'una il sistema controlla e se il tuo dominio punta al server il certificato viene generato automaticamente.

In alcuni casi c'è la necessità di generare manualmente il certificato, ad esempio il tuo sito è già online e non puoi aspettare fino al giorno successivo perché il tuo sito mostra un errore.

In questo caso puoi generare il certificato gratuito manualmente ma anche in questo caso per poterlo generare devi assicurarti che il dominio punti correttamente al server.

Se invece hai deciso di usare un certificato SSL a pagamento puoi seguire il tutorial che spiega come installare un certificato SSL.

Come Passare Da Http A Https Con WordPress

Passare da http a https con WordPress

Iniziamo col dire che se il sito web è raggiungibile tramite http e https allo stesso indirizzo è possibile che Google lo penalizzi come contenuto duplicato. Questa è ovviamente una situazione da evitare, vediamo adesso come fare. L'operazione verrà svolta in due semplici passi:

  1. Dobbiamo fare in modo che WordPress carichi tutti i contenuti usando la connessione https
  2. Dobbiamo impostare un redirect 301 dalla versione http alla versione https in modo da evitare contenuti duplicati

Come prima cosa è eseguiamo un backup completo del sito nel caso in cui qualcosa andasse storto durante il procedimento.

Se preferisci abbiamo pubblicato un video tutorial che spiega come eseguire queste operazioni.

Il primo passo da compiere è di cambiare l'url di WordPress da http ad https. WordPress salva queste informazioni nel database, ed in alcuni casi queste impostazioni vengono serializzate, vale a dire che se effettuiamo un semplice "trova e sostituisci" sul database possiamo creare dei problemi di visualizzazione al sito perché andiamo a corrompere i dati serializzati.

Ma oltre alle impostazioni è importante anche modificare tutte le chiamate alle risorse. Per poter vedere il lucchetto verde nella barra dell'indirizzo del nostro browser è necessario che tutte le risorse siano caricate con una connessione sicura, stiamo parlando delle immagini, dei fogli di stile (CSS) e dei JavaScript.

Nella maggior parte dei casi (a meno che non si tratti di un tema vecchio o mal progettato) i fogli di stile ed i CSS caricano usando lo stesso protocollo indicato nelle impostazioni del sito. In questo caso dato che abbiamo modificato tutto usando WP Migrate DB questi files dovrebbero usare correttamente il protocollo https.

Le url delle immagini contenute nei post invece sono "scritte" nel testo del post con codice HTML. Questa operazione di "trova e sostituisci" ci permetterà di modificare correttamente tutte le url delle immagini oltre al resto.

Andiamo quindi ad installare il plugin WP Migrate DB di Delicious Brains tramite l'interfaccia di WordPress e lo attiviamo. Questo plugin ci permetterà di eseguire un "trova e sostituisci" sul database e si prenderà cura di modificare l'impostazione anche dove i dati sono serializzati senza corromperli.

passa da http ad https con WordPress SupportHost

Quindi accediamo alla pagina del plugin da Strumenti -> Migrate DB Nella prossima schermata clicchiamo su find e replace (dal momento che non ci interessa esportare il database ma modificare l'url della nostra installazione WordPress).

wp migrate db SupportHost

Nei box sotto impostiamo il nuovo url preceduto da https:// nel box "New URL" ad esempio https://dominio.it

IMPORTANTE: il campo che vedi cerchiato nell'immagine sottostante di default inizia con //. Dobbiamo andare a modificarlo in modo da farlo diventare http:// aggiungendo quindi "http:" davanti ai due slash.

Se non esegui questa operazione vai a creare un errore. Il campo dovrà quindi essere http://dominio.it Il campo "File Path" resterà invariato dal momento che non stiamo spostando l'installazione di WordPress ma stiamo modificando soltanto l'url, quindi dovrai semplicemente fare copia-incolla nella seconda riga. Puoi eliminare il campo path dal momento che non eseguiremo nessuna modifica.

WordPress edit database url SupportHost

A questo punto ci basta cliccare su "Find & Replace" ed è fatta. Usando questo plugin tutte le referenze ad http:// saranno cambiate in https:// impostando quindi WordPress per usare correttamente la connessione sicura.

Impostare il redirect da http ad https con WordPress

Adesso che il nostro sito WordPress funziona correttamente con la connessione sicura https dobbiamo impostare un redirect 301 (redirect permanente, search engine friendly) dalla versione http del tuo sito web alla versione https.

In questo modo tutti i visitatori saranno rimandati alla versione sicura del tuo sito web.

Questo passaggio è importantissimo per far capire a Google che il sito è stato spostato in maniera permanente da http a https. Inoltre i link che puntano verso la versione http saranno rediretti verso la versione https del sito senza perdere la link juice.

Per fare questo puoi aggiungere due righe di codice nel file .htaccess (o file htaccess) all'interno della cartella public_html:

RewriteCond %{HTTPS} off
RewriteRule (.*)$ https://www.dominio.it/$1 [L,R=301]

Ovviamente dovrai sostituire "www.miodominio.it" col nome del tuo dominio. Se il tuo dominio non include il "www" allora non dovrai usarlo.

Tieni presente che a seconda di dove inserisci il codice questo potrebbe non funzionare. Ad esempio è possibile che se lo inserisci alla fine del file la tua direttiva potrebbe non essere considerata. Consigliamo di inserire queste due righe all'inizio del file, subito dopo "RewriteEngine on" se presente.

In alternativa puoi usare un plugin che fa tutto per te come Really Simple SSL. Da un punto di vista di prestazioni e manutenzione è consigliabile ridurre al minimo il numero di plugin che usiamo nella nostra installazione WordPress, per questo motivo consigliamo di usare usare il codice indicato sopra da inserire all'interno del file .htaccess.

Per controllare di aver impostato il redirect correttamente puoi usare un redirect checker online. Vai ad inserire il nome del tuo dominio preceduto da http:// e controlli se viene reindirizzato correttamente alla versione protetta.

Controllare che sia veramente sicuro

https insecure

Una volta che hai eseguito questi passi puoi visitare il tuo sito web. Come prima cosa dovresti essere rediretto alla versione https e dovresti vedere un lucchetto verde a sinistra dell'indirizzo (cambia a seconda del browser).

In alcuni casi però potresti avere un'icona diversa, ad indicare che il tuo sito web è insicuro, come vedi nell'immagine qui sotto con un triangolo giallo di pericolo: Questo significa che alcune risorse vengono caricate con una connessione non cifrata, questo errore potrebbe essere derivante da alcune immagini o altre risorse caricate tramite connessione http.

Questo tipo di problema non dipende dall'hosting ma dal fatto che WordPress sta caricando alcune risorse usando una connessione non sicura. Per capire quali sono queste risorse consigliamo di usare lo strumento gratuito online whynopadlock, quindi capire quali sono le risorse caricate tramite una connessione insicura, e risolvere caso per caso.

Potrebbe interessarti anche:

10 comments on “Come passare da http a https con WordPress”

  1. Grazie Ivan, articolo chiaro e completo, idem per il video.
    Ho finalmente capito come mai non basta forzare il redirect ma è necessario anche modificare "fisicamente" i link http presenti nel db, cosa che mi ha sempre spaventato dopo alcune brutte esperienze facendolo a mano sul file sql, adesso userò sempre la tua soluzione con WP Migrate DB.

    1. Il problema di modificare a mano il database sono i dati serializzati, una semplice find e replace corrompe tutte le serializzazioni. Il plugin che usiamo semplifica la vita ed è facilissimo da usare.

    1. Non è una cartella ma un file. Vedo che non è nostro cliente. alcuni hosting non permettono la modifica. Nel nostro servizio si trova all'interno della cartella public_html

    1. Salve Girolamo, Non riusciamo a fornirle supporto dai commenti del nostro blog. La invito ad aprire un ticket di supporto dalla nostra area clienti.

  2. Ottimo articolo, potresti per cortesia dare le medesime indicazioni per chi ha, come me, una installazione multisite di wordpress? non mi ci raccapezzo! Grazie

  3. Articolo molto interessante, sono riuscito a passare da http a https con wordpress sul mio sito.
    Non sono riuscito a creare il redirect in .htaccess ne manualmente ne con il plugin, infatti dopo aver inserito il codice il sito risulta irraggiungibile con l'errore too many redirects. Ho provato a disattivare tutti i plugin ma stesso errore.
    Così ho 2 siti duplicati. Idee?
    http://www.lamaison.it

    1. Per questioni specifiche la invito ad aprire un ticket di supporto. Uno dei nostri tecnici le risponderà entro 1-2 ore dall'apertura del ticket.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *