Google e gli altri colossi del web hanno da tempo avviato una campagna per esortare tutti i gestori di siti web a passare a HTTPS nel più breve tempo possibile. Chrome, ad esempio, già da tempo riporta l’indicazione Non sicuro a sinistra della barra degli indirizzi nel caso in cui venga aperta una qualunque pagina web.
Firefox mostra la frase Connessione non sicura solo nel momento in cui si facesse clic sulla “i” posta sempre a sinistra della barra degli URL.
Nell’articolo Passare da HTTP a HTTPS: l’importanza del certificato SSL abbiamo messo in evidenza l’importanza di migrare a HTTPS e di usare un certificato digitale perfettamente valido e universalmente riconosciuto.
Stabilendo una connessione HTTPS le informazioni scambiate tra browser e server web (e viceversa) non possono essere né lette né modificate da parte di terzi (vengono scongiurati i cosiddetti attacchi man-in-the-middle, MITM).
Rispetto al protocollo HTTP, HTTPS segnala al browser di usare il livello di cifratura aggiuntivo SSL/TLS per proteggere le comunicazioni da client a server e viceversa. Inoltre, per attestare l’identità del sito web che si sta visitando si usa un certificato digitale. Esso serve per rassicurare il browser web sull’identità del sito che si sta visitando attestando che la pagina in corso di visita è effettivamente erogata dal soggetto a cui ci si aspetta appartenga davvero.
Come abbiamo spiegato nell’articolo sopra citato esistono diverse tipologie di certificati: DV (Domain Validated), OV (Organization Validated) ed EV (Extended Validation). Essi differiscono sulla base dell’attività di verifica dell’identità del richiedente condotta dall’autorità di certificazione ovvero dall’organismo che emette il certificato digitale per conto del cliente.
I certificati EV sono quelli emessi seguendo i criteri di verifica più severi: avrete certamente notato che sui servizi di online banking, a sinistra della barra degli URL del browser appare anche il nome della banca.
Questo avviene perché l’istituto di credito sta utilizzando un certificato EV che offre le garanzie più elevate in assoluto.
Ai fini della cifratura dei dati scambiati tra client, server e viceversa, però, non serve necessariamente un costoso certificato EV; basta anche un DV.
Let’s Encrypt è un’iniziativa nata sotto la spinta di Linux Foundation, Mozilla, Cisco, Akamai, EFF (Electronic Frontier Foundation), Google, Facebook, Internet Society e molti altri, che permette a chiunque di richiedere un certificato digitale DV per il proprio sito web e usarlo gratuitamente per crittografare tutte le comunicazioni in transito.
Ancora oggi si parla “colloquialmente” di certificato SSL; in realtà, si dovrebbe usare semplicemente – come evidenziato in precedenza – il termine certificato digitale o certificato DV/OV/EV dal momento che SSL è un protocollo crittografico, peraltro superato e sostituito da TLS 1.2, che permette di cifrare i dati scambiati (vedere I principali browser abbandoneranno il supporto per i protocolli TLS 1.0 e TLS 1.1 nel 2020 e Firefox e Chrome abbracciano il protocollo TLS 1.3: che cosa significa).
HTTPS: ottenere un certificato digitale gratuito con Let’s Encrypt. Le varie modalità
Rispetto alle procedure fornite dalle autorità di certificazione, l’ottenimento di un certificato digitale da parte di Let’s Encrypt implica l’utilizzo di una procedura più complessa che varia a seconda delle piattaforme e dei sistemi operativi utilizzati.
Nell’articolo Ottenere un certificato digitale wildcard per HTTPS con Let’s Encrypt abbiamo visto che è possibile ottenere anche certificati di tipo wildcard ovvero utili per attivare HTTPS sia sul sito principale (esempio nomedelsito.com) che su tutti i suoi terzi livelli (esempio forum.nomedelsito.com o mobile.nomedelsito.com e via dicendo).
Certbot
Uno degli strumenti che Let’s Encrypt propone per richiedere, generare, installare e rinnovare il certificato digitale si chiama Certbot. Le indicazioni per utilizzarlo sono riportate a questo indirizzo.
SSL For Free
Raggiungibile cliccando qui il servizio si occupa di aiutare gli utenti a generare e rinnovare i certificati Let’s Encrypt. Sono previsti diversi strumenti per verificare l’identità dell’utente o meglio la possibilità del richiedente di controllare uno o più domini.
Suggeriamo di optare per Manual verification o Manual verification (DNS): nel primo caso basterà caricare uno o più file sul server web accessibile attraverso la porta 80; nel secondo – sempre per attestare la proprietà del dominio – si dovrà aggiungere un record DNS.
Zero SSL
Anche Zero SSL usa un approccio simile: basta cliccare ad esempio su Online tools, su Start in corrispondenza di FREE SSL Certificate Wizard e seguire la procedura per attestare la proprietà del proprio dominio e ottenere un certificato DV valido da Let’s Encrypt.
In tutti i casi si può generare lato server web una CSR (Certificate Signing Request) ovvero un file di richiesta che permette di indicare subito per quali domini si sta richiedendo il certificato insieme con le proprie generalità (di solito basta specificare nazione e organizzazione richiedente).
Get HTTPS for free!
In alternativa si può ricorrere anche al servizio Get HTTPS for free: il certificato digitale Let’s Encrypt è ottenibile eseguendo una serie di comandi all’interno della finestra del terminale, anche in Windows 10: Linux in Windows: come, quando e perché utilizzarlo.
Suggeriamo di visitare la pagina Get HTTPS for free e cliccare sui link how do I generate this? così da ottenere, l’uno dopo l’altro, i comandi Linux da eseguire per arrivare all’ottenimento del proprio certificato digitale con Let’s Encrypt.
Per “validare” il dominio e accertarne la proprietà, sono previste tre differenti modalità tra le quali si può liberamente scegliere: esecuzione di un comando Python che resta in ascolto sul server sulla porta 80, caricamento sul server web di un file, inserimento di un record TXT per il dominio o i domini d’interesse.
Per rinnovare il certificato, basterà eseguire nuovamente la procedura con Get HTTPS for free a ridosso della data di scadenza del certificato stesso.
Sono comunque disponibili tanti client, più o meno automatizzati, per ciascun sistema operativo e ogni web server (qui l’elenco completo).
Una volta ricevuto il proprio certificato digitale si dovrà installarlo sul server web seguendo una procedura diversa a seconda del software utilizzato. A questo punto si potrà aprire la porta 443 in ingresso e fare in modo che il server web inizi a erogare le pagine usando il protocollo HTTPS. Quando si passa il proprio sito da HTTP a HTTPS, comunque, è necessario seguire alcuni passaggi fondamentali affinché le nuove pagine HTTPS vengano correttamente indicizzate dal motore di ricerca e non si perda autorevolezza in ottica SEO nei risultati di ricerca: Come trasferire un sito, modificarne la struttura o passare a HTTPS.
A questo punto, nella barra degli indirizzi del browser il sito web inizierà a essere indicato come “Sicuro” (lucchetto chiuso nella barra). Cliccandovi si leggerà come autorità di certificazione proprio Let’s Encrypt Authority.
È bene ricordare che il certificato digitale rilasciato da Let’s Encrypt ha una scadenza molto ravvicinata nel tempo (90 giorni dalla data di emissione): è bene quindi attivarsi per tempo per il rinnovo o comunque impostare un client che – eseguito periodicamente – di occupi di richiedere un nuovo certificato.
Nell’articolo Controllare la data di scadenza dei certificati usati sui propri siti web abbiamo presentato un utile script – soprattutto per coloro che si trovano a gestire decine di siti – che può essere usato per verificare le date di scadenza dei certificati digitali in uso.