“Chi non progetta la sicurezza programma il fallimento.”
Kevin Mitnick
Quante volte vi sarà capitato, navigando in Rete, di aver visto un lucchetto verde (o rosso) in alto a sinistra dell’indirizzo web digitato ? Ecco, quel lucchetto, che per molti potrà essere semplicemente uno dei tanti simboli colorati sul desktop, sta ad indicare se la connessione tra voi ed il sito web a cui siete connessi è sicura (e cifrata) oppure no.
No, non è una questione banale. Tutt’altro, la sicurezza della connessione tra il vostro browser ed il sito web al quale siete connessi (o credete di esserlo…) è di fondamentale importanza soprattutto quando si ha a che fare con i siti web delle banche o di pagamento on-line. E’ importante anche per tutti gli altri siti web, perché la verifica del certificato SSL fornito offre anche importanti informazioni sull’identità del sito e di chi lo amministra.
Per questo, se avete un sito web, anche solo un blog, è buona cosa dotarlo del supporto SSL. Ed oggi, grazie all’autorità di certificazione creata dall’Internet Security Research Group (ISRG), è possibile farlo gratuitamente.
Il portale madre dell’iniziativa è Let’s Encrypt, che fornisce certificati SSL validi per 90gg a chiunque ne faccia richiesta. Tuttavia, a meno di avere accesso alla console (via SSH, ad esempio), e quindi poter usare CertBot, è praticamente impossibile utilizzarlo. La stragrande maggioranza degli utenti webmaster ha a malapena accesso FTP al proprio spazio web, ed ecco che sono nati portali per semplificare le operazioni e permettere, con relativa semplicità, di poter beneficiare del servizio.
Perché dovrei installare un certificato SSL sul mio sito web ?
Innanzitutto perché tutti i dati tra il PC dell’utente ed il sito web saranno cifrati con un algoritmo di cifratura asimmetrica, sicuri anche in caso di attacco man-in-the-middle (in questo caso attenzione al lucchetto di colore rosso !) o di sniffing del traffico.
Il secondo motivo, che dovrebbe essere particolarmente importante per le aziende, è quello di offrire all’utente la certezza che il sito web a cui sono collegati è, effettivamente, ciò che dice di essere: ogni certificato è legato al nome a dominio indicato in fase di emissione, pertanto l’uso di un certificato non valido sarebbe subito segnalato dal browser.
SSLforFree
Graficamente è il portale più accattivante ed anche tecnicamente non richiede nulla di più che un client FTP per caricare due files sul proprio spazio web.
Come si vede dalle schermate, dopo aver inserito il nome DNS del proprio sito web (in questo caso, zerozone.it – automaticamente aggiunge anche la versione www.zerozone.it), vengono offerte tre modalità di verifica. La più semplice è quella manuale che, appunto, consiste nel creare la directory /.well-known/acme-challenge/ all’interno dello spazio web e copiarci i due files indicati. Per la generazione del certificato, se la piattaforma di hosting lo consente, si può usare anche il CSR fornito (se non sapete cosa è un CSR, forse è il caso di fare una ripassatina a cosa è e come funziona SSL….). Se tutto è andato per il meglio, il rilascio del certificato valido per 90 giorni è immediato.
Get HTTPS for free!
Graficamente molto spartano ma straordinariamente efficiente e aperto (tanto che il codice sorgente è disponibile in un repo su GitHub), Get HTTPS for free! necessita però di una shell per l’esecuzione di alcuni comandi ed il CSR. Il tutto è molto semplice e spiegato puntualmente ma se siete alla vostra prima esperienza, forse non è lo strumento migliore da provare.
Come verifico l’installazione del certificato SSL ?
Una volta ottenuto ed installato il certificato e il certificato dell’autority (CA-cert), che dovete fare seguendo le istruzioni del vostro web hosting, potete verificarne la corretta installazione visitando la versione ‘https‘ del sito web (es. https://www.zerozone.it) e verificando la presenza del lucchettino verde. Per essere ancora più tranquilli, potete verificare il certificato SSL con uno dei tanti tools on-line gratuiti disponibili in Rete: SSL Checker.
Attenzione !
Il certificato rilasciato ha una validità di 90 giorni, dopodiché deve essere rinnovato. Le procedure sono più semplici ma, analogamente, richiedono l’upload del nuovo certificato rilasciato. Se avete qualche soldo da spendere potete acquistare un certificato SSL da uno dei tanti provider commerciali, come ad esempio RapidSSL. Generalmente un certificato SSL di media sicurezza per un nome a dominio costa circa 25-30€ l’anno.
Il mio hosting non mi permette l’installazione di un certificato SSL
In questo caso, che immagino essere piuttosto raro, suggerisco vivamente di cambiare hosting. In questo caso potete attingere direttamente dalla lista dei Provider che offrono supporto diretto a Certbot, così da semplificare e velocizzare tutte le operazioni di rilascio e rinnovo.
Come faccio a “forzare” l’uso di SSL per il mio sito web ?
Il protocollo HTTP comunica di default sulla porta TCP 80, mente HTTPS sulla porta TCP 443. A seconda di come scriviamo il nome a dominio (es “http://www.zerozone.it” o “https://www.zerozone.it”), il browser utilizza la porta 80 o la 443. E’ possibile, su alcune piattaforme, redirezionare gli utenti dalla HTTP alla HTTPS, in maniera trasparente ed automatica.
Se la vostra piattaforma di hosting supporta le direttive di Apache (uno dei più diffusi server web al mondo), è sufficiente creare un file .htaccess nella directory radice del proprio spazio web con le seguenti righe:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Conclusioni
Ormai non c’è alcun motivo per non usare il protocollo SSL per il proprio sito web. Praticamente tutti i dispositivi, sia mobile che desktop, sono perfettamente compatibili ed in maniera del tutto trasparente all’utente. In ogni caso, è possibile mantenere la possibilità di usare anche http, se necessario (magari per alcuni servizi particolari).
Compatibilmente con gli altri e più importanti impegni quotidiani, se avete problemi lasciate un commento che proverò ad aiutarvi.