Come aggiungere HTTPS su WordPress

Come aggiungere HTTPS su WordPress

HTTPS ti manda fuori di testa? Nessun problema, con questa guida individuerai tutto quello che c’è da sapere sull’argomento: se sei alla ricerca di una guida per impostare HTTPS sul tuo sito WP sei arrivato nel posto giusto. Se hai installato WordPress per il tuo sito web, infatti, e vorresti configurare HTTPS nel suo indirizzo (in modo da ottenere qualcosa tipo:

https://tuosito.it

su tutte le tue pagine invece del solito

http://tuosito.it

), avrai bisogno di effettuare la configurazione del tuo hosting per fare uso corretto di un certificato SSL.

Panoramica sui tipi di certificati: SSL e TLS

Per installare HTTPS sul tuo sito in WordPress devi sapere, anzitutto, che ci sono molti certificati che puoi scegliere, e che sono stati descritti in un articolo a parte di questo sito; non serve conoscerli tutti a memoria, ovviamente, anche perchè in generale la configurazione di base è piuttosto semplice, e non richiede passaggi troppo complicati. Questo avviene soprattutto se decidiamo di fare uso di soluzioni free come Let’s Encrypt, che è diventato particolarmente facile da configurare tanto che molti pannelli di controllo degli hosting come Plesk e cPanel lo propongono come installazione 1-click.

La cosa da tenere in considerazione, senza scendere in troppi dettagli tecnici e strutturali, è che in generale un certificato HTTPS potrebbe avere un costo: per ottenere un certificato SSL che sia valido e sia di livello più alto si comprano certificati SSL che possono costare qualche centinaio di euro all’anno. Ad esempio in modo che compaia il nome dell’azienda nel certificato stesso: Keliweb, Tophost, GoDaddy, Namecheap e molti altri tipi di hosting offrono questo servizio a canone annuale: di solito lo vendono assieme ad un hosting dedicato o con IP dedicato, ma è solitamente possibile selezionare solo il certificato – e spendere qualcosa di meno. Nella pratica, comunque, è possibile sfruttare tranquillamente soluzioni gratuite in cui l’ente che certifica il nostro sito è, ad oggi, Let’s Encrypt (va bene per qualsiasi tipo di sito, commerciale o amatoriale che sia).

Normalmente, quindi, è possibile configurare Let’s Encrypt ed altri equivalenti servizi di HTTPS gratuito mediante i pannelli di controllo del nostro hosting, quindi cPanel o Plesk (nell’immagine seguente ecco l’icona all’interno di Plesk per Let’s Encrypt). Per la cronaca SSL è il predecessore di TLS, che è invece la versione utilizzata maggiormente nei sistemi crittografici attuali. Una implementazione molto utilizzata sia dell’uno che dell’altro è attualmente rappresentata dal toolkit OpenSSL.

Come prima cosa da fare per installare HTTPS su WordPress, quindi, c’è la necessità di installare HTTPS mediante cPanel o Plesk, in modo tale che le pagine del nostro sito funzionino da subito in HTTPS senza generare errori.

Come configurare un certificato sul proprio dominio in WordPress (Plesk + Let’s encrypt)

Per configurare il certificato di Let’s encrypt e quindi abilitare HTTPS sul nostro sito, apriamo il pannello Plesk del dominio (utilizzerò Plesk in questo esempio, ma è uguale anche per hosting con cPanel), clicchiamo sull’icona di Let’s encrypt – che potete vedere qui in alto – e vedremo subito qualcosa del genere (ho utilizzato il dominio leultime.info giusto come prova).

Spuntiamo il dominio alternativo con www (opzionale, ma consigliato), e facciamo click su Installa per installare il certificato. Dopo qualche secondo di attesa, a questo punto, HTTPS dovrebbe essere confermato e funzionante!

La seconda cosa che bisogna fare per configurare il proprio sito con il protocollo HTTPS è quella di cambiare l’URL di base del sito, facendo login come amministratori ed andando a cliccare su Impostazioni e poi su Generali. Da qui, per i due campi Indirizzo WordPress (URL) e Indirizzo sito (URL), sarà necessario aggiungere una ‘s’ alla fine di http, ed ottenere un indirizzo del sito replicato nelle due caselle quale https://tuosito.it, come ho fatto nell’esempio riportato in basso (ovviamente dobbiamo inserire in questo campo il nome del sito che stiamo configurando: tuosito.it o leultime.info per seguire l’esempio precedente).

Ovviamente tali modifiche vanno confermate scorrendo in basso la pagina e facendo click sul bottone “Salva le modifiche“; questo è soltanto il secondo passo per la configurazione di HTTPS in WordPress, perchè ne è necessario un terzo che bisognerà effettuare modificando il file htaccess del sito web che stiamo configurando.

Come configurare da HTTP a HTTPS (redirect 301)

In molti casi potreste avere la necessità di forzare il protocollo sicuro HTTPS per fare in modo che tutte le pagine in HTTP (in chiaro) siano redirezionate in automatico sul protocollo sicuro. L’impostazione non è banale ed è importantissima, perchè si rifletterà sia a livello di accessibilità degli URL che di indicizzazione sui motori di ricerca: vediamo quindi come sia possibile attivare questa impostazione.

Se non fosse chiaro o immediatamente comprensibile il perchè sia necessario configurare un redirect 301 o permanente è presto detto: prima dell’arrivo del certificato il nostro sito web funzionava normalmente mediante HTTP in chiaro, adesso funzioneranno entrambe le versioni, sia quella in chiaro (HTTP) che quella criptata (HTTPS), per cui tale situazione è ambigua è decisamente sconsigliato e da risolvere.

Infatti se lasciassimo in sospeso le cose fino a questo punto avremmo:

  1. duplice indicizzazione su Google (URL duplicati);
  2. utenti confusi, che non sapranno scegliere tra HTTP e HTTPS.

Quello che dobbiamo fare è quindi un redirect 301 da HTTP verso HTTPS, per tutti gli URL indistintamente per semplicità; in alternativa, potremmo farlo soltanto per gli URL sensibili come quello di login o quelli di pagamento (se usiamo gateway di pagamento proprietari, ad esempio). Per semplicità vedremo la versione global redirect 301 da HTTP a HTTPS.

redirect 301 HTTP -> HTTPS: esempio base

Mediante FTP o file system di Plesk, basta andare nella root (ovvero la cartella base) del nostro sito (ad esempio /www) e modificare il file in remoto .htaccess (il . davanti indica che si tratta di un file nascosto), inserendo la configurazione seguente:

 RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.tuosito.it/$1 [R,L]

Ovviamente tuosito.it andrà sostituito in tutti gli esempi con l’indirizzo del vostro sito web, e questo tipo di configurazione va bene nel 90% dei casi, quando i siti web in WP usano Apache.

redirect 301 HTTP -> HTTPS: esempio base (alternativo)

Una ulteriore versione della stessa configurazione, che non richiede modifiche e può essere copia-incollata direttamente per il vostro sito, può essere la seguente:

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

redirect 301 HTTP -> HTTPS: esempio per siti senza prefisso www

Ecco una ulteriore versione del file htaccess utilizzabile su un sito web senza www davanti (nell’esempio, prova-sito.it):

RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://prova-sito.it/$1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

redirect 301 HTTP -> HTTPS: esempio per siti con prefisso www

Per i siti web per cui è presente una duplice versione con www davanti, già pre-configurata a dovere su HTTP, è possibile sfruttare questa configurazione.

RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Ricordatevi che questo tipo di configurazione andrà eventualmente amalgamata con quelle che siano eventualmente già presenti per il vostro sito, integrando le modifiche con eventuali configurazioni pre-esistenti. Se non lo farete correttamente, il vostro sito non funzionerà più! Se non siete molto esperti potrebbe essere opportuno testare una delle tre possibilità singolarmente, e verificare quella che effettivamente funziona.

Si ricorda che tutte queste impostazioni forniscono le direttive necessarie al sito per impostare HTTPS per tutte le pagine, senza distinzioni, che è un caso comune ma non sempre fitta con le nostre effettive necessità.

Ricordatevi quindi che le modifiche sopra esposte vanno INTEGRATE CON LA CONFIGURAZIONE corrente di htaccess: se sostituite l’intero file “alla grezza” con la versione qui riportata, per intenderci, cancellerete le vecchie configurazioni di htaccess (una su tutte: i permalink) e rischierete di non fare funzionare più il vostro sito. Tenete quindi conto della corretta sintassi per integrare htaccess sia per i permalink che per HTTPS che per altri eventuali direttive che avevate inserito (redirect 301, ad esempio). In questi casi, in effetti, la cosa migliore è quella di salvarsi la vecchia configurazione in backup locale, e provare a mettere insieme le due configurazioni tenendo conto delle seguenti regole pratiche:

  • RewriteEngine On, se presente, deve comparire una volta sola nel file;
  • le due righe successive vanno inserite alla fine, in coda alle configurazioni che già avevate inserito, come nuova riga.

Di seguito un esempio di integrazione corretta: ho inserito in coda alla configurazione esistente, nello specifico, le due finali.

Usando server NGINX, in alternativa, la configurazione equivalente per passare da HTTP ad HTTPS sarà su questa falsariga:

server {
server_name tuosito.it www.tuosito.it
return 301 https://tuosito.it$request_uri
}

Questo tipo di configurazione permette di passare ad HTTPS su tutte le pagine del vostro sito, ed è in linea apparentemente con le indicazioni per i SEO che secondo Google rendono un fattore di ranking SSL stesso. Su questo mi sono sempre permesso di avere dei dubbi (che in generale vi possa essere stato un fraintendimento generale), perchè dal mio punto di vista ha più senso utilizzare HTTPS solo all’interno delle pagine su cui vanno a finire dati sensibili come avviene nelle pagine di login.

Configurare SSL solo per le pagine di login di WordPress

Se volete configurare HTTPS sulle pagine di login c’è un passo differente da compiere, che consiste in una modifica del file wp-config.php (e fermo restando il primo passo per la configurazione del certificato Let’s Encrypt, pre-condizione sempre necessaria prima di effettuare qualsiasi modifica).

La direttiva da aggiungere a fine di questo file, sia per siti WordPress singoli che per multi-siti, editandolo via FTP:

define('FORCE_SSL_ADMIN', true);

Tenete conto che passare ad HTTPS su un sito è in generale una modifica drastica alla configurazione che Google, ad esempio, potrebbe non recepire correttamente: la cosa importante in questi casi è che i precedenti risultati (quelli già indicizzati sul motore di ricerca) siano correttamente “informati” della modifica, e questo può avvenire tipicamente mediante un redirect 301. La modifica al file .htaccess / NGINX che abbiamo visto, in effetti, serve a venire incontro esattamente a questo genere di necessità.

Se avete eseguito correttamente tutti i passi indicati, browser come Chrome e Firefox indicheranno chiaramente nella barra degli indirizzi che il vostro sito è protetto da HTTPS. Se aveste difficoltà ad eseguire questi passi vi suggerisco di affidarvi alla consulenza di un esperto del settore o di personale qualificato.

…e dal punto di vista SEO?

Si considera ufficiale che l’uso di HTTPS per un sito web sia effettivamente un fattore di posizionamento SEO fondamentale, tanto più che esiste anche un articolo del blog di Google che ne parla (HTTPS as a ranking signal, per chi non l’avesse letto). In altri termini, se avete un sito web e siete passati da poco da HTTP ad HTTPS è lecito attendersi qualche miglioramento sul posizionamento di alcune pagine. Certo è che bisogna configurarlo correttamente, come abbiamo illustrato, e bisognerà fare attenzione a tre cose:

  1. che non ci siano pagina frammiste tra alcuni URL interni in HTTP ed altri in HTTPS;
  2. che i redirect 301 da HTTP a HTTPS siano tutti funzionanti e attivi;
  3. che HTTPS sia funzionante e scansionabile da Google (verificare dalla Search Console e, se necessario, registrare un nuovo indirizzo del sito come HTTPS://nomesito.est);

In genere, non ho riscontrato particolari vantaggi su altri siti che curo passando semplicemente ad HTTPS, e non mi aspettavo che un fattore singolo, isolato rispetto al contesto, potesse essere così importante come in tanti scrivono. Certo è che si tratta di un fattore importante, anche perchè conferisce maggiore sicurezza al visitatore e, in linea di massima, è anche un fattore di ottimizzazione indiretto: incrementa la permanenza del sito, probabilmente riduce un po’ anche il ribalzo e, insomma, male certamente non fa.

Per attivarlo come ranking factor SEO, tuttavia, dovrebbe sempre far parte di una strategia editoriale solida o, se preferite, concorrere al posizionamento assieme ad altri elementi di ottimizzazione: i title, le descrizioni delle pagine, i link interni ben strutturati e soprattutto (direi) i backlink dall’esterno, che dovranno essere sempre di alta qualità e valore.

Photo by Sean MacEntee

Ti piace questo articolo?

6 voti

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

Come aggiungere HTTPS su WordPress

Votato 8.67 / 10, da 6 utenti