Introduzione
Il certificato SSL che ci viene fornito da Let's Encrypt permette di mettere in sicurezza tutte le trasmissioni / scambio dati che avvengono tra il nostro server web apache e il client che lo visita, criptando il traffico e rendendo impossibile intercettare il contenuto.
Come in altri sistemi già visti nei precedenti tutorial il tutto si basa su una catena di fiducia che si viene a creare tra il server che ospita il dominio e il fornitore del certificato che a sua volta deve far parte di una lista di certificatori autorizzati.
Prerequisiti
E' possibile ottenere il nostro scopo in maniera assolutamente gratuita solamente se si sta gestendo un dominio e se si ha accesso completo alla macchina che lo ospita, in alternativa saremmo costretti a generare un certificato autofirmato che ci consente comunque di criptare la trasmissione ma non essendo avvalorato da nessun ente certificatore autorizzato, il client che provasse a visitare il vostro sito con il protocollo https riceverebbe un avvertimento piuttosto evidente e a volte scoraggiante
Per procedere sono quindi indispensabili due requisiti: un server ubuntu 16.04 e Apache2 server configurato con uno o piu domini
Installazione
Prima di procedere alla installazione aggiorniamo i repo.
apt update
faccio presente che apt è un'interfaccia a riga di comando che racchiude le stesse proprietà di apt-get e apt-cache ma siete liberi di utilizzare i comandi specifici
Una volta aggiornato procediamo con l'installazione.
Tutto quello che ci serve fortunatamente è già presente nei repository percui ci basta installarli con
apt install letsecrypt python-letsencrypt-apache
una volta terminata l'installazzione procediamo ad avviare l'utility
sudo letsencrypt
dopo pochi istanti partirà una procedura guidata di letencrypt che vi chiederà quali domini fra quelli da lui automaticamente individuati volete certificare, vi chiederà inoltre se volete reindirizzare tutto il traffico in modo sicuro via https, un indirizzo email valido a cui inviare eventuali comunicazioni. Al termine verranno create le chiavi in /etc/letsencrypt/live/nomedominio e configurato apache in automatico.
Potrete a questo punto effettuare un test della procedura visitando come suggerito dal wizard di letsencrypt il seguente sito ad esempio:
https://www.ssllabs.com/ssltest/analyze.html
e visitanto il vostro sito noterete l'indicazione che il sito è considerato un sito sicuro e verificato
Configurazione
Il certificato ha una durata di 90 giorni va quindi rinnovato di volta in volta cosa che possiamo automatizzare con l'aiuto di crontab magari impostando il rinnovo ogni 60 o anche 30 giorni in modo da avere il tempo di risolvere eventuali problematiche che potrebbero insorgere.
sudo crontab -e
aggiungiamo quindi il seguente comando al suo interno
30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
Postfix e Dovecot
E' possibile utilizzare questo stratagemma anche per ottenere un certificato valido per postfix e dovecot
dato che letsencrypt verifica la presenza dell'host all'interno di apache io non ho fatto altro che aprire il file di configurazione del sito in apache2 e aggiungere come alias l'host che uso per l'email
nano /etc/apache2/sites-available/vostrodominio.vhost
e aggiungere sotto ServerName un ServerAlias, esempio:
ServerName kiokoman.eu.org
ServerAlias mail.kiokoman.eu.org
fatto questo salviamo e riavviamo apache. Sarà necessario rilanciare letsencrypt per aggiornare il certificato infatti noterete che nella lista dei possibili domini da certificare comparirà anche quanto abbiamo indicato nel ServerAlias.
Il nuovo certificato generato protra essere utilizzato in postfix editanto /etc/postfix/main.cf e modificando i seguenti parametri
nano /etc/dovecot/conf.d/10-ssl.conf
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.kiokoman.eu.org/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.kiokoman.eu.org/privkey.pem
mentre per dovecot il file da modificare si trova in /etc/dovecot/conf.d/10-ssl.conf dove andranno ricercati e modificati i seguenti due parametri
nano /etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/letsencrypt/live/mail.kiokoman.eu.org/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.kiokoman.eu.org/privkey.pem
salvate le modifiche e riavviate sia postfix che dovecot
sudo service dovecot restart
sudo service postfix restart
Potrete testare che tutto è andato a buon fine recandovi ad esempio su questo sito e inserendo una email del vostro dominio