Integrare Let's Encrypt SSL in ISPConfig 3.1 e Ubuntu 14.04

Una delle caratteristiche più attese dell'ultima versione di ISPConfig è certamente l'integrazione diretta per il rilascio dei certificati SSL gratuiti della Let's Encrypt: vediamo come integrare questa preziosa feature con ISPConfig 3.1 installato sulla distro Ubuntu 14.04 LTS.

1) Il primo passo è aggiungere il supporto per Let's Encrypt, installando il set di script ufficiali:

mkdir /opt/certbot
cd /opt/certbot
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto

Ora eseguiamo il comando certbot-auto per scaricare e installare tutto il software necessario:

./certbot-auto

Se la vostra è una nuova installazione (e non avete ancora installato ISPConfig) quando lo script vi avviserà che non ha trovato nomi nei files di configurazione, rispondete "No", perché sarà poi ISPConfig ad effettuare tutte le configurazioni necessarie ad attivare i certificati SSL sui virtual host che attiverete.
Se invece state installando il supporto Let's Encrypt a posteriori, quando al termine dell'installazione vi chiederà per quale vhost creare un certificato SSL, rispondete con la "c" di Cancel e terminate lo script.

2) Ora dal pannello di amministrazione di ISPConfig sarà possibile attivare i certificati SSL Let's Encrypt semplicemente spuntando la check box dedicata.
Una particolarità molto interessante (e per nulla scontata) è che saranno inseriti nel certificato anche tutti gli alias configurati sul virtual host principale, evitando quindi i fastidiosi alert dei browser sui certificati non sicuri.

Se desiderate controllare quali certificati sono stati emessi, è sufficiente dare il seguente comando da terminale:

./certbot-auto certificates

Il set completo dei comandi disponibili lo trovate con questo altro comando:

./certbot-auto --help

3) Poiché i certificati SSL hanno una durata di 90 giorni, è opportuno schedulare il cron in modo tale verificare ed aggiornare i certificati da rinnovare:

sudo crontab -e

e aggiungiamo la seguente riga al fondo del file:

15 3 * * * /usr/bin/certbot renew --quiet; service apache2 reload

in questo modo ogni giorno alle ore 3:15 sarà lanciata la verifica sui certificati installati.

4) Nel caso lo si desideri è anche possibile installare un certificato SSL per il portale di amministrazione dell'ISPConfig.
Fermiamo il server web:

service apache2 stop

Sempre da terminale:

cd /opt/certbot/
./certbot-auto certonly

selzioniamo l'opzione "2: Spin up a temporary webserver (standalone)"

e inseriamo il nome del server che desideriamo certificare, ad esempio:

srv1.mycompany.com

Ora effettuiamo il backup dei certificati self signed pre-esistenti:

mkdir /usr/local/ispconfig/interface/ssl/originales
mv /usr/local/ispconfig/interface/ssl/isp* /usr/local/ispconfig/interface/ssl/originales

e creiamo i link ai nuovi certificati letsencrypt appena creati:

ln -s /etc/letsencrypt/live/srv1.mycompany.com/fullchain.pem /usr/local/ispconfig/interface/ssl/ispserver.crt
ln -s /etc/letsencrypt/live/srv1.mycompany.com/privkey.pem /usr/local/ispconfig/interface/ssl/ispserver.key

Quindi riavviare il server web:

service apache2 start