Differences between revisions 3 and 4
Revision 3 as of 2016-05-29 16:47:32
Size: 4149
Editor: Kurgan
Comment:
Revision 4 as of 2016-05-29 16:48:26
Size: 4183
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
 * Scaricare lo zip per l'installazione da https://github.com/Neilpang/acme.sh (o usare la copia locale qui allegata, pero` ovviamente questa e` vecchia)  * Scaricare lo zip per l'installazione da https://github.com/Neilpang/acme.sh (o usare la copia locale qui allegata, pero` ovviamente questa e` vecchia [[attachment:acme.sh-master.zip]])

Let's Encrypt

Questa e` una bozza incompleta di documentazione.

Installazione del client acme.sh

Il client acme.sh non e` il client ufficiale di Let's Encrypt, e` un client di terza parte che non richiede altro che bash e wget per girare. Puo` essere eseguito anche se non si e` root, pero` dovete ricordarvi che lo script deve poter scrivere dentro la vostra webroot (o accedere alle config del vostro dns) per funzionare.

  • Scaricare lo zip per l'installazione da https://github.com/Neilpang/acme.sh (o usare la copia locale qui allegata, pero` ovviamente questa e` vecchia acme.sh-master.zip)

  • Unzippare il pacchetto master.zip
  • eseguire come richiesto la installazione ./acme.sh install. Il risultato sara` che avete il vostro script dentro alla vostra home, sotto la directory .acme.sh/ e che in cron dell'utente dal quale avete installato verra` messa una chiamata a acme.sh per il rinnovo automatico dei certificati.

Uso del client acme.sh

Per creare i certificati e` necessario un metodo di "autenticazione" del dominio, il piu` comodo per l'automatismo e` un web server che risponda all'hostname (www.dominio.tld, webmail.dominio.ltd, ecc) per il quale vogliamo generare il certificato. In pratica il sistema di Let's Encrypt deve poter scaricare un file dal vostro web server, file che viene generato da acme.sh. Questo significa anche che acme.sh deve poter scrivere nella webroot del vostro web server. (se lo eseguite da root, no problem)

Lo script salvera` i certificati generati, con anche le relative configurazioni, come ad esempio i comandi che lo script in cron deve eseguire per riavviare i demoni che usano i certificati in seguito al rinnovo degli stessi, nella home dell'utente sotto a .acme.sh/. Per comodita` insegno allo script acme.sh a copiare i certificati sotto a /etc/letsencrypt dove saranno a disposizione di tutti i demoni che devono usarli, avendo cura anche di concatenare i vari cert delle varie CA necessari per costruire la corretta catena di trust.

  • Creare il certificato (anche piu` di uno, ovviamente) Ricorda che la webroot deve coincidere con l'hostname (named virtual, nel caso), altrimenti la verifica automatica fallisce. In questo esempio l'hostname mater.kurgan.org non e` un named virtual, e non ha una webroot personale, ma usa il default /var/www (/var/www/html in certe installazioni di Apache, come ad esempio centos o debian 8)
     # acme.sh --issue  -d <hostname per il cert> -w <path webroot>
     acme.sh --issue  -d mater.kurgan.org -w /var/www/
  • Se vogliamo farne altri, non dobbiamo fare altro che ripetere il comando con i giusti parametri per hostname e webroot. Notare che tutti i cert che generiamo verranno automaticamente rinnovati dallo script in cron.
  • verificare in cron che ci sia il renew automatico (crontab -e)
  • creare la directory /etc/letsencrypt (o quella che volete voi, per metterci i certificati che poi vanno letto dai vari demoni che li usano)
  • eseguire il comando per mettere le chiavi dentro a /etc/letsencypt. Notare che questo comando salva i certificati dell'host e della CA concatenati (fullchain) e non il singolo certificato nel file "cer", per poter costruire la chain of trust corretta. Questo comando fra l'altro riavvia i demoni che usano i certificati. Una volta eseguito questo comando, al momento del rinnovo lo script in cron automaticamente eseguira` nuovamente questo comando, copiando i certificati e riavviando i demoni. All'atto pratico i parametri che passiamo a questo comando vengono salvati nella configurazione di acme.sh relativa all'hostname per questo certificato, ed eseguiti automaticamente ad ogni rinnovo.
    acme.sh --installcert -d mater.kurgan.org --keypath /etc/letsencrypt/mater.kurgan.org.key --fullchainpath /etc/letsencrypt/mater.kurgan.org.cert --reloadcmd "service exim4 reload; service apache2 reload; service dovecot reload"
  • modificare le config dei vari demoni (apache, exim, dovecot nell'esempio) per leggere i certificati dai files giusti.
  • ricaricare i vari demoni
  • verificare, dopo 80 giorni, se l'autorenew ha funzionato

LetsEncrypt (last edited 2023-01-17 09:10:04 by Kurgan)