Come passare da http a https su WordPress

A partire da fine Gennaio 2017 uscirà la versione 56 di Chrome, che indicherà come “non sicuri” tutti i siti che non utilizzano https. Google ha anche annunciato che le future versioni dell’algoritmo di ricerca penalizzeranno i siti non https.
Cerchiamo di valutare che cosa significa https, se è necessario intervenire sul proprio sito WordPress e come farlo a livello pratico.

Che cosa significa https

La maggior parte dei siti (al momento più del 90%) utilizza http non sicuro: questo significa che le informazioni scambiate tra il nostro computer e il server sono in chiaro. Questo non è un problema se le informazioni non sono riservate, per esempio se leggiamo notizie o guardiamo un sito.

Ma quando si tratta di:

  • informazioni private o riservate;
  • password;
  • transazioni e acquisti;

Sarebbe un grosso problema trasmettere le informazioni in chiaro: chiunque riuscisse a intercettare la comunicazione, potrebbe leggere tutti i dati. È per questo che già da tempo banche, negozi online, forum privati, social networks, utilizzano una connessione http sicura, ovvero https.

I siti https utilizzano un certificato ssl che permette ai due computer di comunicare in maniera criptata: se anche qualcuno riuscisse a leggere le informazioni che transitano, non potrebbe decifrarle.

Chi deve passare subito a https

Chiunque abbia uno shop, gestisca transazioni economiche o gestisca dati riservati, come password o informazioni personali, dovrebbe passare ad https.

Per esempio:

  • negozi online;
  • forum privati o siti che gestiscono informazioni riservate;
  • siti che permettono la registrazione gli utenti;

Per questi il passaggio è da fare categoricamente, anzi lo avrebbero già dovuto fare da tempo.

Tutti gli altri siti possono farlo con più calma, ma Google ha annunciato che anche per i siti normali potrebbe esserci un impatto nell’indicizzazione, seppur minimo rispetto ai tipi di siti indicati sopra. Ma dato che con il passare del tempo la penalizzazione potrebbe avere peso sempre maggiore, la raccomandazione è di passare comunque ad https quanto prima.

Che cosa succede se non passo ad https

Impatto sul ranking SEO

Già dal 2014 Google aveva comunicato sul suo blog per webmaster che l’http non sicuro avrebbe impattato (in maniera marginale) con il ranking SEO: https://webmasters.googleblog.com/2014/08/https-as-ranking-signal.html

Il peso di questo fattore aumenterà sempre più. Quindi i siti http saranno penalizzati rispetto a quelli https.

Impatto sull’esperienza utente

Da fine gennaio il browser Chrome (che è il più usato) inizierà a marcare in rosso con la scritta: “non sicuro” i siti non https: molti utenti quindi eviteranno di navigare su siti con questa notifica, preferendo quelli con la scritta verde: “Sicuro”. L’impatto sull’esperienza utente si trasformerà quindi in una perdita di visite.

Probabilmente i siti con campi sensibili o che fanno vendita o transazioni commerciali verranno evidenziati in modo ancora più evidente, comportando una perdita di vendite.

Impatto sulla sicurezza

Gli attacchi per rubare dati sensibili o hackerare siti si concentreranno su siti non https, perché è generalmente più facile. Inoltre possibili attackers valuteranno sicuramente come “trascurato” e più facile da attaccare un sito che non ha fatto il passaggio.

Come passare ad https per siti WordPress

Il passaggio va pianificato bene e fatto nel modo migliore: eventuali errori si tradurranno in penalizazioni nche pesanti sull’indicizzazione, quindi nel dubbio meglio restare in http che fare male il passaggio ad https. Al momento, a meno che non si tratti delle categorie indicate sopra, la penalizzazione è leggera: errori nel passaggio potrebbero avere invece ripercussioni pesanti.

Ecco quindi i passi fondamentali da fare per effettuare il passaggio nel migliore dei modi.

Capire quale tipo di certificato SSL si vuole utilizzare

Esistono tre tipi di certificati SSL:

  • Validazione di dominio;
  • Validazione di business e organizzazione;
  • Validazione estesa;

Se non ci sono esigenze particolari, è sufficiente la validazione di base, che permetterà di avere la scritta verde: “Sicuro” e il lucchetto verde. Esempio:

Se si fa ecommerce e si vuole dare maggiore fiducia, può essere meglio la validazione di business, che oltre a mettere la scritta verde “Sicuro”, offre in genere anche informazioni addizionali sull’azienda che ha ottenuto il certificato.

Per servizi finanziari evoluti, transazioni, e massima garanzia di sicurezza, può essere utile la validazione estesa, che scrive nella barra anche il nome dell’azienda che ha ottenuto il certificato. Esempio:

Esistono differenze di costi, tempi e burocrazia necessaria ad ottenere i vari tipi di certificato:

  • Il certificato per la validazione di dominio ha costi bassi (o nulli) e si ottiene in pochi minuti;
  • Il certificato per la validazione di business ha costi più alti e richiede una verifica e l’invio di documenti;
  • Il certificato per la validazione estesa, infine, è quello più costoso e che richiede più giorni e burocrazia.

Per siti normali è sufficiente la validazione di dominio, per chi fa ecommerce può essere utile la validazione di business o estesa.

Ottenere o acquistare il certificato

Alcuni servizi di hosting o pannelli di controllo permettono di ottenere certificati gratuiti autoinstallanti: è sicuramente la soluzione più economica e veloce.

Se il vostro hoster o pannello di controllo non lo supporta, si possono ancora ottenere certificati gratuiti (come quelli rilasciati da Letsencrypt ) ma dato che durano tre mesi e bisogna reinstallarli ogni volta, consiglio di prendere un certificato Comodo ssl da 9$/anno così bisogna reinstallarlo solo ogni anno.

Installare il certificato

A seconda dell’hoster, pannello di controllo e tipo di certificato, bisognerà provvedere ad installarlo (o far abilitare l’autoinstaller nel pannello di controllo).

Su Cpanel la soluzione è molto semplice:

  • Se è abilitato il certificato automatico offerto gratuitamente da cPanel, non dovrete fare nulla, è già configurato e abilitato;
  • Se il vostro hoster ha abilitato la possibilità di gestire i certificati SSL, potete gestirli da soli utilizzando le funzionalità della sezione “Security” del cpanel.

Certificato installato: passi successivi

L’acquisto, installazione e configurazione del certificato ssl sono solo i primi passi: se avete fatto tutto correttamente, ora il sito è PREDISPOSTO per utilizzare https, ma bisogna subito provvedere a configurare e ottimizzare il sito per fare in modo che:

  • vengano servite solo le pagine https;
  • siano correttamente configurati i redirect 301 per le vecchie url;
  • siano aggiornati tutti i servizi accessori collegati al sito.

Vediamo nel dettaglio di che cosa si tratta.

Aggiornare tutti i link http sul database

Tutti i link nel database WordPress rimanderanno ancora ad http non sicuro. Per risolvere il problema si può fare in due modi:

  • configurare un redirect tramite plugin e/o .htaccess;
  • modificare i link direttamente nel DB.

Il modo migliore è quello di modificare i link nativamente, nel Database, per svariati motivi:

  • perché la presenza di link http nelle proprie pagine fa generare un warning “mixed content” al browser;
  • perchè risolvere solo a livello di .htaccess genera redirect anche per i propri links;
  • per altri motivi di cui si possono trovare dettagli online con ricerche su Google.

Bisognerà quindi utilizzare un tool apposito per sostituire tutte le occorrenze nel proprio database, ovvero ricercare http://miosito.it e sostituirlo con https://miosito.it (da fare sia per la versione www che senza www).

Io utilizzo Search and Replace DB di Interconnectit. Esistono anche altri tool, l’importante è non fare la sostituzione tramite query dirette sul DB perché molti dati WordPress sono serializzati e modificarli a mano con query sql sul database, o sostituzioni di testo sul dump dello stesso è sbagliato (si corromperebbero i campi serializzati).

Aggiornare i link hardcoded nel tema e nei plugin

Quando disponibili, dovrete usare le versioni http delle risorse utilizzate (font, css, librerie, etc), sempre per evitare il warning “mixed-content”.

Questo lavoro non è totalmente automatizzabile.
Prima i tutto dovrete fare una ricerca con un tool apposito (come grep o ack), e sostituire le occorrenze che troverete (dopo aver valutato che si possa fare).
Poi dovrete scorrere le pagine e vedere con il debugger quali risorse http generano ancora warning, cercare chi le inserisce (tema o plugin o file di configurazione) e sostituirle con la corrispondente versione https (se possibile), o eliminarle (se praticabile).

Aggiornare .htaccess con redirect 301 a https

Nel file .htaccess bisognerà inserire, prima della sezione WordPress, un redirect di tutte le pagine http alle corrispondenti pagine https. Si può fare in diversi modi, io utilizzo questo:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Aggiornare wp-config.php

Forzare login SSL e admin SSL aggiungendo questo parametro nel wp-config.php:

define('FORCE_SSL_ADMIN', true);

Aggiornare robots.txt

Se utilizzate un robots.txt statico, andrà controllato ed eventualmente aggiornato anche quello.

Aggiornare servizi esterni relativi al sito

Dovrete aggiornare tutti i servizi esterni che fanno riferimento al sito, in particolare:

  • Google Search Console (webmaster tools);
  • Google Analytics;
  • Qualunque servizio seo che utilizziate (Semrush o simili);

Verifica di corretto funzionamento

A questo punto dovrebbe essere tutto installato e configurato correttamente, è bene però procedere ad un controllo accurato.

Qui è possibile far verificare il proprio sito: https://www.ssllabs.com/ssltest/analyze.html

Esistono anche altri servizi, ed è probabile che nei prossimi giorni molti sospenderanno i servizi gratuiti, perchè la corsa al passaggio di questi giorni sta sovraccaricando i server di chi offre questi servizi.

Link utili

Concludo con un po’ di link utili a chi vuole approfondire l’argomento.

10 commenti su “Come passare da http a https su WordPress”

  1. Buonasera, scusate l’ignoranza in materia ma il mio webmaster ci ha comunicato di aver effettuato il passaggio in https il tutto ha comportato circa 1 ora e 30 di lavoro.

    Invece il nostro consulente Seo ci ha detto che è stato fatto male e che è un lavoro abbastanza delicato impossibile da portare a termine in cosi poco tempo.

    Per caso qualcuno di voi sà darmi delle tempistiche per effettuare questo passaggio?

    • Per farlo bene anche dal punto di vista SEO, con tutti i punti che ho indicato nell’articolo e controlli vari, è un lavoro da minimo 6-8 ore, per siti semplici.
      Poi dipende dal tipo di sito: per siti con molte pagine ed aree, su cui si utilizzano molti strumenti esterni, che utilizzano molto codice esterno (Advertising, affiliazione, pixel traccianti, etc) potrebbe volerci molto di più.
      Se fosse un lavoro da 1 o due ore l’avrebbero già fatto tutti 🙂

    • In genere consiglio sempre di fare le modifiche prima in un sito di staging (una copia locale o online), ma questo è un caso particolare. Questo passaggio a mio parere va fatto direttamente sul sito live. Non è una modifica di layout o di funzionalità, ma del modo in cui utenti e motori di ricerca vedono il sito, quindi non ha molto senso farla in locale.

  2. io ci capisco poco, il mio lucchetto passa da verde ad arancione a rosso, secondo le pagine del mio blog che apro. Non sarebbe giusto che wordpress modificasse per tutti l’http in https? Un’analisi fatta seguendo i passaggi indicati da WP mi dice che il sito è sicuro e non ci sono problemi per la sicurezza quindi non si deve fare nulla.

    • Se il tuo sito è quello in firma non devi fare nulla, perché su WordPress.com la migrazione a https è già stata fatta, ed essendo un servizio hosted sul quale non hai controllo, non avresti neanche modo di gestirlo in autonomia o di passare da https ad http. Vedi questo articolo: WordPress.com – https and SSL.
      Se il sito invece è un altro, ed utilizza WP self hosted, allora devi farlo in autonomia (o meglio fartelo fare da qualcuno, perché dalla domanda che fai si capisce che non ti è tutto chiarissimo 🙂 )

Lascia un commento