Come avrete sicuramente notato, da qualche settimana anche noi di Stintup siamo passati al lato delle connessioni sicure del web. La cosiddetta HTTPS, che sta per HyperText Transfer Protocol over Secure Socket Layer, detto anche HTTP over TLS, HTTP over SSL (la vecchia versione, ora semplicemente TLS) e HTTP Secure.
[su_note note_color=”#ffffff” radius=”5″]
Cos’è una connessione HTTPS? Ce lo spiega Wikipedia
HTTPS consiste nella comunicazione tramite il protocollo HTTP (HyperText Transfer Protocol) all’interno di una connessione criptata dal Transport Layer Security(TLS) o dal suo predecessore, Secure Sockets Layer (SSL). Il principio che sta alla base di HTTPS è quello di avere:
1. un’autenticazione del sito web visitato
2. protezione della privacy
3. integrità dei dati scambiati tra le parti comunicanti.
[/su_note]
Noi semplici visitatori ce ne accorgiamo per via di un lucchetto mostrato nella barra degli indirizzi, proprio a fianco dell’indirizzo web della pagina visitata. Se questo lucchetto è verde, allora il sito che stiamo visitando è sicuro. Questo su Chrome, se utilizziamo altri browser come per esempio Safari, il lucchetto sarà grigio, a meno che la certificazione sia di tipo “avanzata”, allora in quel caso sarà anche qui verde con il nome della società proprietaria del sito web e che ha certificato il sito.
Le connessioni HTTPS stanno diventando sempre più importanti non solo perché danno maggiore sicurezza, bensì perché Google ha cominciato a segnalare i siti web che non sono certificati come pagine potenzialmente pericolose.
Avere una certificazione HTTPS è importante quindi anche per noi possessori di siti web, anche perché i nostri visitatori saranno felici nel vedere che noi ce la mettiamo tutta per certificare il nostro sito e renderlo più sicuro. E poi, diciamocelo, quel bel lucchetto verde in alto a sinistra è anche bello da vedere no?
Certificare il nostro sito web a molti può sembrare una cosa faticosa e soprattutto costosa. Già, perché la maggior parte delle aziende che rilasciano questi certificati ce li propongono con una tariffa che spesso non è bassa. Io però vi dico che possiamo farlo anche senza pagare queste fantomatiche tariffe, ed il tutto è completamente legale e sicuro!
Cosa serve
Per seguire questa guida servono alcuni requisiti di base, che molti di voi hanno ma probabilmente non tutti.
1. WordPress
2. cPanel con Let’s Encrypt SSL
3. Coudflare
Il primo punto, credo, non debba essere spiegato. Insomma, per seguire questa guida assumiamo che voi abbiamo un sito su base WordPress.
Per quanto riguarda il secondo, a dire il vero, non è necessario che abbiate Let’s Encrypt SSL già installato nel vostro cPanel. Se non c’è è più complicato, tuttavia potete leggere nel sito ufficiale come procedere. Inoltre potete (anzi, dovreste) contattare il vostro provider e chiedere spiegazioni sul motivo per il quale non sia presente Let’s Encrypt nel vostro pannello di controllo cPanel e se sia possibile inserirlo.
Per quanto riguarda Cloudflare, beh, sappiate che è semplice da configurare ed gratuito. Qui trovate alcuni nostri consigli su come configurarlo a dovere.
I passaggi da seguire
Innanzitutto rechiamoci nel nostro cPanel. Scorrete in basso e troverete una sezione “Sicurezza” (o simile) con all’interno il nostro amato Let’s Encrypt SSL.
Selezionatelo ed entrate nella schermata principale. A questo punto vi ritroverete di fronte ad un pannello con i vostri domini e un pulsante “Issue” attraverso il quale è possibile richiedere una nuova chiave ed un nuovo certificato SSL/TLS.
A questo punto torniamo indietro nella schermata sicurezza e selezioniamo SSL/TLS. Qui selezioniamo Richieste di firma del certificato (CSR). Se all’interno è già presente, allora clicchiamo su Modifica e copiamo la CSR codificata. Se invece non c’è alcun certificato CSR, ne creiamo uno e copiamo la CSR codificata. Salvatevi questo codice perché vi servirà tra poco.
A questo punto infatti ci serve la certificazione da parte di un ente che la emetta e sia riconosciuto da Google & Company. Purtroppo la maggior parte degli enti che emettono tali certificati si fanno pagare cari, ma non è il caso di Cloudflare. Se non siete già registrati (male) fatelo subito. La configurazione è semplice e non serve essere informatici, il sito vi guiderà passo passo. Se volete approfondire la questione Cloudflare vi consiglio il nostro articolo a riguardo.
Una volta configurato, apriamo Cloudflare (www.cloudflare.com) e andiamo nella sezione Crypto (l’icona blu con il lucchetto), ossia la quarta icona blu in alto a partire da sinistra.
Qui attiviamo il certificato SSL impostandolo in Full (strict).
E’ arrivato finalmente il momento di richiedere la certificazione SSL, che ci rilascerà direttamente Cloudflare (che generosi!). Andiamo quindi su Origin Certificates > Create Certificate. A questo punto ci ritroviamo davanti ad una schermata in cui ci viene chiesto di creare un certificato CSR oppure se ne abbiamo già uno. Noi, grazie a Let’s Encrypt SSL, lo abbiamo già. Ed il codice ce l’abbiamo copiato negli appunti (in caso contrario, se non l’avete fatto, tornate su cPanel a copiare la CSR codificata).
Su Certificate Signing Request incolliamo la CSR codificata creata in precedenza con Let’s Encrypt SSL sul cPanel, clicchiamo su Next e seguiamo i passaggi/salviamo.
A questo punto abbiamo un certificato TLS gratuito rilasciato e firmato da Cloudflare.
A questo punto l’SSL dovrebbe essere segnato come attivo su Cloudflare.
Le altre opzioni, per quanto mi riguarda, le ho settate tutte su ON e ho anche impostato l’HTTP Strict Transport Security (HSTS). Se siete interessati potete farlo ma non è cosa semplice e veloce perché potrebbe comportare un malfunzionamento del vostro sito web.
A questo punto potete testare il vostro sito inserendo nella barra degli indirizzo https://www.ilnomedelvostrosito.com.
Non preoccupatevi se funziona o no. Anche a me non funzionava, ossia il lucchetto verde non c’era. Come ho risolto? Semplicemente analizzando con Chrome la pagina. Visualizza > Opzioni per sviluppatori > Strumenti per sviluppatori. Qui, in primis su “Console”, dovrete vedere eventuali errori con l’HTTPS. Nel mio caso alcuni link non erano stati convertiti in HTTPS.
E difatti non è finita qui, anzi. La prima cosa da fare ora è andare nella Dashboard di WordPress, Impostazioni > Generali e aggiungere una “s” dopo http su Indirizzo WordPress (URL) e Indirizzo sito (URL).
A questo punto però dobbiamo riscrivere da zero tutti i link. Fortuna che Wordpress è nostro amico e ci basta qualche secondo per farlo. Basta andare in Impostazioni > Permalink e cliccare su “Salva le modifiche”. Facile e rapido.
Potrebbe essere che ancora qualcosa non vada a buon fine. La prima cosa fa fare è tornare su Visualizza > Opzioni per sviluppatori > Strumenti per sviluppatori di Chrome e analizzare gli errori. Nel mio caso l’errore era causato da un’immagine del footer e del logo che non aveva l’indirizzo https ma solo http. Così sono andato nel pannello di controllo del tema del sito, e inserito una “s” dopo http dov’è presente l’indirizzo del logo del sito, della favicon e del logo nel footer. Semplice e veloce anche in questo caso.
A questo punto, se tutto è andato per il meglio, dovete fare in modo che quando un visitatore arriva nel vostro sito venga reindirizzato automaticamente all0indirizzo in https. Per farlo dovete andare sul file .htaccess in public_html, aprirlo e modificarlo con le seguenti regole:
[su_note note_color=”#ffffff” radius=”5″]
### # force HTTPS ### <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule> ### # HSTS ### <IfModule mod_headers.c> Header set Strict-Transport-Security "max-age=15552000" </IfModule> ### # redirect to www ### <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule>
[/su_note]
A questo punto se tutto va bene, dovrete vedere l’icona verde a fianco del vostro sito web:
Reply