Come migrare un sito (wordpress) da http a https

Sebbene da molto tempo ormai ( nel 2014 sul blog di google appariva questo articolo ) Google  abbia raccomandato l’utilizzo dei certificati SSL /TLS per rendere i siti web più sicuri dichiarando di premiare nelle sue ricerche i domini HTTPS   a scapito di quelli HTTP, è solo nell’ultimo anno che i siti che utilizzano il protocollo https sono cresciuti enormemente.

E la crescita è destinata ad aumentare, in ragione del fatto che Google ha continuato nella politica “restrittiva” nei confronti dei siti non sicuri mostrando nella barra di CHROME la scritta “non sicuro” dapprima per le pagine contenenti campi password e carte di credito e, a partire dal prossimo mese di luglio sostituendo l’attuale icona “neutra” ( per i siti https invece viene mostrato un lucchetto verde, che sarà l’obiettivo da raggiungere al termine di questa breve guida) con la scritta “Sito non sicuro”

Come google tratta le pagine web non sicure

L’accelerazione finale a quanto pare è destinata a giungere dal GDPR il nuovo regolamento europeo sul trattamento dei dati personali che fra le centinaia di pagine di cui è composto, da direttive precise circa la sicurezza dei dati rendendo di fatto obbligatorio il protocollo HTTPS per tutti i siti che raccolgono dati personali ( anche semplicemente tramite un modulo di contatto aziendale)

Bene ecco quindi

Come passare da  HTTP a HTTPS.

1 – Il certificato TLS / SSL

Il primo requisito per passare da HTTP a HTTPS e mostrare l’agognato lucchetto verde è quello di disporre di un certificato TLS/SSL installato sul server. Fino al 2015  i certificati dovevano essere acquistati dalle società abilitate alla loro emissione ma con la nascita dei certificati gratuiti “Let’s encrypt” i costi sono ridotti a zero e tutti i maggiori provider includono certificati gratuiti già installati e pronti all’uso nei loro piani di hosting: Siteground, Aruba, Register, OVH sono solo alcuni esempi di hosting provider che consentono di avere un sito su protocollo https a costo zero e pronto all’uso. E’ sufficiente abilitarlo per il dominio in oggetto tramite funzionalità del pannello di controllo e possiamo cominciare a visualizzare il nostro sito digitando “https://miodominio.it” o https://www.miodominio.it”.

La prima cosa da fare a questo punto per rendere le modifiche attive su tutte le pagine del sito è modificare le impostazioni->generali del sito impostando l’url  a https accertandosi di non avere nel file .htaccess nella root del sito direttive conflittuali che potrebbero generare dei loop di reindirizzamento

ora se tutto è andato a buon fine tutte le pagine del vostro sito saranno visualizzate come https://sito.com e nella migliore delle ipotesi il lucchetto verde comparirà ovunque. In molti casi tuttavia ciò non sarà così indolore in quanto potrebbero essere chiamate delle risorse contrassegnate come non sicure che vanificano la sicurezza complessiva del sito

2 – Risorse non sicure

Per visualizzare il “Lucchetto verde” che conferisce al nostro sito la giusta autorevolezza nei confronti degli utenti ( e di Google) occorre che nelle pagine non vi sia la presenza di risorse che provengono da domini non sicuri, ovvero chiamate con url di tipo “http”, anche se si tratta dello stesso dominio.

Le casistiche più frequenti di risorse non sicure riguardano, come ovvio, i siti nati in http e quasi sempre

  • Immagini – nel caso di wordpress, le immagini caricate nella libreria media assumono il proprio url nel momento in cui vengono uploadate e salvate sia come files sia come record della tabella wp_post
  • File Javascript e css – inclusi dai temi e dai plugin

Le ultime versioni di Chrome disabilitano, per default, i contenuti non sicuri col risultato che nella console degli errori viene evidenziato l’errore, il contenuto non viene mostrato/caricato e nella barra del browser viene visualizzata un’icona a forma di scudo che ci avvisa del tentativo della pagina di usare appunto risorse non-https

a questo punto, se si attiva l’opzione “Carica script non sicuri” il lucchetto verde verrà sostituito da un’inquietante scritta rossa “Non sicuro” che contraddistinguerà tutti i siti non-https nei prossimi mesi:

Niente panico, la soluzione sta ovviamente nella sostituzione di tutte le risorse non-http che vengono chiamate nel vostro tema, nei plugin e nella libreria media.
La definizione degli url non-https può risiedere in due famiglie di dati: il database e i files. Va detto che la stragrande maggioranza dei plugin e dei temi (soprattutto quelli più utilizzati e i plugin / temi premium) sono del tutto compatibili con questa caratteristica, tuttavia possono esserci eccezioni. Per ciò che riguarda i files, la casistica più frequente riguarda l’inclusione di script  tramite la funzione wp_enqueue_script() o molto più raramente nei file di template del tema anche a seguito di modifiche custom fatte nel tempo

La ricerca delle stringhe può essere fatta sul pc locale, scaricando dal server tutte le cartelle del tema e child-theme eventualmente in uso e fare una ricerca con un editor di testo come notepad ++ che consente la ricerca e sostituzione in tutta la directory, quindi ricercate “http://” e sostituite con “https://”  poi ricaricate i file sul server.

Per ciò che riguarda le stringhe che vengono memorizzate nel DB di wordpress ( ad esempio immagini caricate prima della migrazione) , se il vostro cpanel non mette a disposizione un automatismo di sostituzione automatico occorre provvedere “a manina”

3 – Sostituire stringhe nel database di un sito WORDPRESS

Purtroppo, una delle caratteristiche meno piacevoli di WP è che nel db vengono memorizzati dati che rappresentano delle funzionalità ben specifiche ( ad esempio quanto visto nel paragrafo 1) e non solo dati tabellari. Il secondo fattore negativo è che in molte tabelle sono presenti dati serializzati che vanno trattati con attenzione perché in caso di dati corrotti l’intera installazione è a rischio di venire compromessa con perdite dati rilevanti.

Per passare da http a https occorre quindi accertarsi di sostituire tutte le occorrenze della stringa “http://” con “https://”. Come abbiamo già detto l’URL delle immagini caricate sul sito prima del passaggio vengono memorizzate nel DB, nella tabella “wp_post” come “attachment”.

Per sostituire stringhe nel db WP ci affidiamo da molto tempo ad un plugin “atipico”  Database search and Replace che va portato sul server via ftp nella root del sito

poi accedendo all’url della cartella si visualizza:

dove le impostazioni di connessione vengono rilevate automaticamente e lo script si incarica di sostituire correttamente anche le stringhe serializzate. La scelta a mio avviso più conservativa è di cercare “http://miodominio.com” e di sostituirlo con “https://miodominio.com”, in questo modo verranno sostituite solo le occorrenze che ricadono sotto il ns. dominio. Se ancora ci fossero stringhe problematiche si può effettuare una sostituzione più drastica cercando “http://” e sostituendo con “https://”
Fate un backup completo prima di procedere e poi cancellate assolutamente la cartella al termine delle operazioni.

Con queste operazioni dovreste avere completato la procedura di migrazione a https, verificate la presenza del lucchetto verde in tutte le pagine del sito!

P.S.
Il plugin WPML  potrebbe caricare uno script non https con modalità “compatibilità” attivata, se del caso selezionate “ignora retrocompatibilità”

 

3 – Implicazioni SEO  del passaggio da HTTP a HTTPS – modifiche alla search console

Un’ultima nota riguarda la tematica SEO e la search console di google ( ex webmaster tools).

Sotto il profilo SEO la redirezione completa del sito a https non richiede interventi e viene “digerita” in breve tempo da Google senza influenze negative ma anzi con benefici visto che il sito sicuro viene premiato.

Per ciò che riguarda le statistiche invece dovrete creare un nuovo sito indicando l’url https://miosito.com.

2018-05-28T07:45:16+00:00

Leave A Comment

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.