Come ficcare HTTPS su WordPress


HTTPS ti manda fuori di testa, e non riesci a capire come configurarlo? Nessun problema: in questa guida troverai tutto quello che c’è da sapere sull’argomento. Se sei alla ricerca di una guida per impostare HTTPS sul tuo sito WP, insomma, sei arrivato nel posto giusto.

Introduzione

Se hai installato WordPress (scopri qui come fare) sul tuo hosting e ti piacerebbe 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

Giusto? OK!

Configurare il certificato, come prima cosa

Avrai bisogno di effettuare, come prima cosa, la configurazione del tuo hosting per fare uso corretto di un certificato SSL. Quello che esternamente figura come HTTPS, infatti, è una tecnologia crittografica molto avanzata che può avere diversi tipi di implementazioni, cioè si può realizzare in più modi diversi, e che può essere realizzata con diversi tipi di certificato software:

La cosa essenziale quindi, prima di fare qualsiasi altra cosa, è assicurarsi che il nostro dominio abbia HTTPS installato; se non fosse installato, i principali pannelli di controllo come Plesk o cPanel permettono di abilitarlo seguendo apposite procedure. Se l’hai già  fatto, assicurati che il certificato funzioni, cioè restituisca le pagine web correttamente (ma per evitare complicazioni prova a vedere se l’URL di un’immagine del tuo dominio, ad esempio, risponde sia in HTTP che in HTTPS); poi passa direttamente alla sezione in cui si parla dell’installazione del plugin per WordPress per installare – e rendere attivo pubblicamente, all’interno del sito – il tuo certificato.

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 approfonditi 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 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. Let’s Encrypt ha il grande merito di aver messo HTTPS a disposizione gratuitamente per il grande pubblico, e questo ha cambiato i termini del discorso considerevolmente (all’inizio poteva sembrare che dietro la smania di far passare tutti in HTTPS ci fosse la volontà  di commercializzare molti certificati da parte dei servizi di hosting, cosa vera solo in parte ormai). Tra l’altro Let’s Encrypt si auto-rinnova ogni mese, liberando il webmaster dal pensiero di doverlo fare da solo. I certificati scaduti infatti non sono una buona cosa, e fanno smettere il sito di funzionare correttamente.

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). La cosa da tenere in considerazione, senza scendere in troppi dettagli tecnici o strutturali, è che in generale un certificato HTTPS potrebbe avere un costo: Let’s encrypt è un certificato firmato digitalmente dalla stessa, quindi è “generico” in tal senso. 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 della nostra 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.

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.

Configurare il redirect 301 da HTTP a HTTPS

In certi casi – ammesso che l’hosting disponga di particolari automatismi, o se non usate il plugin riportato alla fine di questo articolo – 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 di file .htaccess

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 alternativo di .htaccess

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 [.htaccess]

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 [.htaccess]

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

Da ricordare, mentre configurate HTTPS

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 per la SEO, cosa comporta HTTPS?

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.

Se pensi che sia arrivata l’ora di passare il tuo sito in HTTPS, puoi seguire le indicazioni che ti darò in questo articolo. Non sarà  difficile, aumenterà  i tempi di caricamento del tuo sito (ammesso che sia stato fatto a regola d’arte), darà  una maggiore autorevolezza e idea di professionalità  allo stesso agli occhi dei tuoi visitatori (con il famoso lucchetto verde che si accenderà  per ogni browser che ti visita) e non ti impedirà  di utilizzare normalmente tutti i plugin ed i temi con cui lavori abitualmente.

Il miglior plugin per passare WordPress in HTTPS

Premessa: per fare quanto descritto in questa pagina, come prima cosa dovrai avere SSL abilitato sul tuo hosting. Questo significa che il tuo hosting dovrà  supportare un certificato SSL qualsiasi e darti la possibilità  di abilitarlo via Plesk o cPanel. In certi casi, come ad esempio per l’hosting Aruba, il certificato SSL può essere già  disponibile senza che venga ancora utilizzato: significa che il sito risponde indifferentemente (ed in modo corretto e privo di errori) sia con HTTP://tuosito.it che con HTTPS://tuosito.it. Per abilitarlo e rendere effettiva la modifica per tutti i tuoi visitatori, dovrai farlo via sito con il plugin che adesso ti mostrerò.

Ricordati inoltre che:

  • via plugin sarà  necessario attivarlo su tutte le pagine (non solo su quelle di login, e questo per evitare il problema del mixed content, cioè di pagine web “miste” con HTTP e HTTPS, il che è visto come una cosa negativa ed invalida il senso stesso di HTTPS);
  • basterà  un click per farlo, non preoccuparti (…massimo due!);
  • sà¬, è necessario che lo attivi anche tu; certe diatribe del passato sulla necessità  di farlo, con la grande diffusione di certificati gratuiti, lasciano ormai il tempo che trovano;
  • sarà  possibile redirezionare tutto il traffico in HTTP automaticamente in HTTPS, ma questo, come vedremo, il plugin di cui parleremo lo farà  in automatico.

Il plugin di cui parliamo è Really Simple SSL, che come suggerisce il nome è davvero semplice da usare ed altrettanto efficace. Really Simple SSL abilita con un paio di click il certificato SSL per il tuo sito in WordPress; ho avuto modo di testarlo con successo sia su un sito single site (le installazioni standard di WP) che su uno multisite ed ha funzionato egregiamente in entrambi i casi. Esistono due versioni di Really Simple SSL, quella free che trovate sul repository va bene per la maggioranza dei siti (inclusi i multisite gestiti mediante path), mentre quella premium a pagamento permette di attivare le caratteristiche selettivamente per i multisite (ad esempio su un sito attivare SSL, su un altro invece no). Nella versione premium inoltre sono inclusi degli utili tool che possono aiutarvi, ad esempio, a fare diagnostica nel caso abbiate problemi di mixed content.

Per installare Really Simple SSL:

  1. Assicuratevi che SSL sia attivo e funzionante sul vostro hosting (dovrete attivarlo da Plesk o cPanel o chiedere all’assistenza dell’hosting che usate);
  2. Installate il plugin sul vostro sito;
  3. Attivatelo;
  4. Seguite le indicazioni riportate a video per abilitare SSL;
  5. Se tutto è andato nel verso giusto, dovrete fare login nuovamente e a questo punto tutto funzionerà  come prima, solo che sarete in HTTPS.

Prima di procedere con le operazioni in questione si suggerisce di mettere temporaneamente offline il sito, giusto per evitare problemi di navigazione ai visitatori presenti sullo stesso in quel momento.

Non sono richieste impostazioni complicate perchè in genere viene fatto tutto in automatico, l’unica accortezza riguarda i domini con sottodomini annessi per cui non sempre è possibile attivare in automatico per tutti quelli richiesti.

Photo by Sean MacEntee

👇 Da non perdere 👇



Questo portale esiste da 4635 giorni (13 anni), e contiene ad oggi 4348 articoli (circa 3.478.400 parole in tutto) e 22 servizi online gratuiti. – Leggi un altro articolo a caso
Numero di visualizzazioni (dal 21 agosto 2024): 0
Privacy e termini di servizio / Cookie - Il nostro network è composto da Lipercubo , Pagare.online e Trovalost
Seguici su Telegram, ne vale la pena ❤️ ➡ @trovalost
Questo sito contribuisce alla audience di sè stesso.