Indica un intervallo di date:
  • Dal Al

Let’s Encrypt piccolo HowTo

vecchio navigatore quanto tempo è passato

La connessione è infida.
Cosa devo fare?
Dettagli tecnici.
Sono consapevole del rischio.

L’immagine qui sopra potrebbe diventare una reliquia del passato.

^ Due appunti pratici e alla buona raccolti studiando Let’s Encrypt

Ho scritto qui di Let’s Encrypt. Riassumendo, sono già 3,5 milioni i certificati rilasciati dalla nuova certificate authority che offre gratuitamente certificati Web fidati allo scopo di aumentare il livello di sicurezza nel traffico Internet. Tra gli sponsor del progetto vi sono Cisco, Akamai, Facebook e Mozilla, oltre naturalmente la Electronic Frontier Foundation. Aumentano così i siti in grado di offrire comunicazione tramite il protocollo HTTPS, autenticazione certificata, integrità dei dati scambiati e protezione della privacy.

È possibile usare Let’s Encrypt sia per un uso domestico che professionale, senza costi e abbassando la richiesta di bagaglio tecnico, ma quanto abbassandola? Sicuramente molto rispetto alla creazione autonoma di un certificato, inoltre un certificato auto generato non viene riconosciuto in automatico dal navigatore, il quale riconosce solo i certificati rilasciati dalle agenzie autorizzate. Un navigatore reagisce blandamente alla richiesta di una pagina web di far inserire dati in chiaro in una pagina, ma parte decisamente allarmistico quando una pagina fornisce una certificazione che non riconosce: “questo certificato non è valido (o meglio non ci risulta), vuoi tu (giovane jedi scriteriato) comunque verso la pagina a tuo rischio e pericolo continuare?”. Un messaggio tollerabile per un uso domestico come proteggere la pagina di login al blog collegandosi da un internet café, ma non certo per un sito che debba presentarsi, magari per offrire ownCloud, ad altri utilizzatori che non siano lo stesso artigiano che l’ha creato.

Let’s Encrypt permette di creare un certificato valido, mettendo in sicurezza la comunicazione, facilmente e senza costi.

Un esempio pratico

Prendiamo ad esempio un piccolo host, magari una VPS sul quale abbiamo un sistema operativo libero come Debian e accesso amministrativo. Per ottenere un certificato usando Let’s Encrypt occorrerà installare l’omonimo software come ben spiegato qui.

# Installare letsencrypt per Apache 2.4 su Debian 8

apt-get install python-letsencrypt-apache -t jessie-backports

Se necessario, aggiungere il repositorio debian backport in /etc/apt/sources.list
deb http://ftp.debian.org/debian jessie-backports main

# Creare il certificato e modificare automaticamente i settaggi di apache

letsencrypt-auto --apache

Rispondere alle domande, in particolare specificare il dominio e usare una email valida.

Osserva il file /etc/letsencrypt/options-ssl-apache.conf.
Fatto. Congratulazioni. In alto i calici.

Verificare il neo-certificato

https://www.ssllabs.com/ssltest/analyze.html

Altre ed eventuali

Se non volessi automatizzare il procedimento potrei voler usare l’opzione “certonly”, indicare il dominio da usare e poi modificare a mano i settaggi di Apache in /etc/apache2/enabled-sites/

letsencrypt-auto --apache certonly -d example.com

Potrei voler creare un certificato per diversi dominii specificando dove sono, ad esempio questo comando crea un certificato per example.com che si trova in /var/ww/html/ e uno per owncloud.example.com che si trova in /var/www/owncloud

letsencrypt certonly --webroot -w /var/www/html -d example.com -w /var/www/owncloud -d owncloud.example.com

I certificati sono in /etc/letsencrypt/live/$domain

* privkey.pem (la chiave privata, quello che Apache vuole in SSLCertificateKeyFile)
* cert.pem (il SSLCertificateFile)
* chain.pem (il SSLCertificateChainFile)
* fullchain.pem (concatenazione di cert.pem e chain.pem)

Prima di cominciare potrebbe essere opportuno fermare Apache

service apache2 stop

E a operazioni concluse riavviarlo

service apache2 start

Ogni certificato vale 90 giorni e può essere rinnovato ridando lo stesso comando che si è usato per crearlo, ma potrebbe essere conveniente automatizzare il rinnovo aggiungendo una riga in Cron.

A seconda della distribuzione usata il comando letsencrypt potrebbe essere da sostituire con il comando certbot, oppure certbot-auto. Il resto della sintassi è invariata.

i logs sono in /var/log/letsencrypt