Come configurare HTTPS su WordPress

Come configurare HTTPS su WordPress

Se hai installato WordPress per il tuo sito web e vorresti configurare HTTPS nel suo indirizzo (in modo da avere https://tuosito.it invece di http://tuosito.it), avrai bisogno di effettuare la configurazione del tuo hosting per fare uso di un certificato SSL.

Tipi di certificato SSL / TLS

Devi sapere, anzitutto, che ci sono molti certificati che puoi scegliere, e che sono stati descritti in un articolo a parte di questo sito, ma in generale la configurazione di base è piuttosto semplice, e non richiede passaggi difficili. La prima cosa da tenere in considerazione è che in generale un certificato HTTPS può avere un costo: per ottenere un certificato SSL che sia valido è anche possibile sfruttare soluzioni gratuite come Let’s Encrypt, ma in linea di massima può essere necessario sfruttare un servizio a pagamento annuale che la maggiorparte degli hosting forniscono (Keliweb, GoDaddy, Namecheap e molti altri tipi di hosting offrono questo servizio a canone annuale: di solito lo vendono assieme ad un hosting dedicato, ma è solitamente possibile selezionare solo il certificato – e spendere qualcosa di meno). Normalmente, poi, è 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).

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, clicchiamo sull’icona di Let’s encrypt e vedremo subito qualcosa del genere (ho utilizzato il dominio test 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 si configura un sito 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.

Prima dell’arrivo del certificato il nostro sito web funzionava normalmente mediante HTTP in chiaro: adesso funzioneranno entrambe le versioni, sia in chiaro (HTTP) che criptata (HTTPS), per cui questo è decisamente sconsigliato e da risolvere.

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

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

Quello che dobbiamo fare è 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.

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:

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

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.

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

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{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ù!

Per attivare HTTPS su server Apache via htaccess, si può sfruttare anche questo ulteriore template di direttive:

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]

Si ricorda che 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.

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 sulle 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.

Photo by Sean MacEntee

Ti piace questo articolo?

4 voti

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

Come configurare HTTPS su WordPress

Se hai installato WordPress per il tuo sito web e …
Votato 10 / 10, campione di 4 utenti

Ti potrebbero interessare (Guide WordPress):

Cerca altro nel sito

Clicca sul box, e scegli la sezione per vederne i contenuti.