Letsencrypt è un progetto nato circa due anni il cui scopo è quello di rendere più sicuro il web, rendendo semplice ed automatico (e gratuito) il rilascio di certificati SSL utilizzabili sui principali server web, a cominciare da apache passando per nginx e varnish e così via…
Molti progetti hanno già adottato ed integrato letsencrypt, come ad esempio ISPConfig, ed anche molti hosting come Netsons.
Zimbra non ha prodotto nessun tool ufficiale per integrare questo strumento, e sebbene esistevano già documentazione (manuale) e script (semi-automatici), da oggi YetOpen offre la possibilità di automatizzare completamente il rilascio ed il rinnovo di un certificato letsencrypt per Zimbra.
Il progetto è stato rilasciato su GitHub sotto licenza GPLv3, e tutti possono quindi usufruirne, collaborare e modificare.
Una volta installato il rilascio di un certificato sarà questione di un comando:
./certbot_zimbra.sh -n
Vediamo i passaggi completi per l’installazione.
Come prima cosa dobbiamo avere l’eseguibile di letsencrypt (che ora si chiama certbot) sul sistema. Le principali distribuzioni hanno già dei pacchetti aggiornati di letsencrypt/certbot, ma per sfruttare il parametro –post-hook consigliamo di avere almeno la versione 0.7.0. Quindi ad esempio su un sistema con Ubuntu 16.04 eseguiamo:
add-apt-repository ppa:certbot/certbot
apt-get update
apt install certbot
A questo punto effettuiamo il clone del repository di certbot-zimbra ad esempio in /usr/local/src:
cd /usr/local/src
git clone https://github.com/YetOpen/certbot-zimbra.git
cd certbot-zimbra
A questo punto siamo pronti per richiedere il nostro certificato:
./certbot_zimbra.sh -n
Lo script si occuperà di applicare una patch alla configurazione del server nginx di Zimbra, richiedere tramite certbot il certificato ed installarlo in Zimbra, eseguendone anche il riavvio.
Il certificato verrà richiesto per l’hostname configurato in Zimbra (quindi quello restituito dal comando zmhostname).
Come sappiamo i certificati di letsencrypt durano 90 giorni, e bisogna schedulare un rinnovo automatico. Dopo il rinnovlo il certificato va reinstallato in Zimbra, e lo script si può occupare anche di questo. Aggiungiamo in /etc/crontab (o in un altra posizione a piacimento) una riga come questa:
29 4 * * * root /usr/bin/certbot renew –post-hook “/usr/local/src/certbot-zimbra/certbot_zimbra.sh -r -d $(zmhostname)”
Il parametro –post-hook farà in modo di eseguire lo script solo quando il certificato è stato effettivametne rinnovato. Lo script effettuerà il deploy del certificato ed il riavvio di Zimbra.
Per segnalazioni, modifiche o per vedere il sorgente visitare la pagina ufficiale del progetto su GitHub.