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.
- Articolo Wordfence blog: Imminent: Non-HTTPS Sites Labeled “Not Secure” by Chrome
- Articolo KeyCDN molto dettagliato: Complete Guide – How to Migrate from HTTP to HTTPS
- Articolo Elegant Themes blog: How to Get a Free SSL Certificate (and Why Google is Forcing You To)
- Annuncio ufficiale Google Security blog: Moving towards a more secure web