User Tools

Site Tools


Sidebar

strutture:lnf:dr:calcolo:acme

Server ACME per certificati SECTIGO

I certificati vengono richiesti da una procedura sulla macchina acme.lnf.infn.it, che si preoccupa anche di rinnovarli 60 giorni prima della scadenza.

Per interagire con tale server è disponibile lo script bash acme-local-certs.

Quando acme-local-certs deve caricare i file su acme.lnf.infn.it, chiederà la password per l'utente acme@acme.lnf.infn.it.

Tool per la gestione dei certificati

Per scaricare e "installare" il tool acme-local-certs:

( cd /usr/local/sbin && curl -fO http://acme.lnf.infn.it/acme-local-certs && chmod +x /usr/local/sbin/acme-local-certs )
( cd /etc && curl -fO http://acme.lnf.infn.it/acme-local-certs.conf && chmod 400 /etc/acme-local-certs.conf )

Il tool ha varie opzioni:

Usage: /var/www/html/acme-local-certs

    -h          help

    -r          Send csr to acme.lnf.infn.it
    -d          Download crt from acme.lnf.infn.it
    -w          Upload private key+crt to fortigate.lnf.infn.it

    -c <file>   Config file  (default /etc/acme-local-certs.conf)

    -H <cn>     Use <cn> for cert hostname (CN)    (default acme.lnf.infn.it)
    -D <path>   Use <path> for crt/csr directory   (default /etc/pki/tls/certs)
    -P <path>   Use <path> for key directory       (default /etc/pki/tls/private)

Nome Host (CN) personalizzato

Per default il tool acme-local-certs usa l'hostname del nodo su cui gira per determinare il CN del certificato.

È possibile però specificarne uno in /etc/acme-local-certs.conf oppure con l'opzione -H <cn> da usare sempre insieme alle altre opzioni.

Nomi multipli

Per generare certificati con nomi multipli, inserire gli alias nel file di configurazione (default /etc/acme-local-certs.conf)

Directory personalizzate

Per default il tool acme-local-certs mette i file relativi ai certificati nelle directory /etc/pki/tls/certs per csr/crt/chain e /etc/pki/tls/private per la chiave privata.

È possibile specificare delle directory in /etc/acme-local-certs.conf oppure con l'opzione -D <path> per csr/crt/chain e -P <path> per la chiave privata, entrambe da usare sempre insieme alle altre opzioni.

Non è possibile specificare i nomi dei file, che saranno sempre uguali al CN del certificato con suffisso .key, .csr, ecc.

Richiesta Certificato

Il tool genera, se non presenti, sia la chiave privata che la CSR e manda la CSR al server acme.lnf.infn.it, il tutto con il comando:

# acme-local-certs -r

Download certificati

Dopo 20-30 secondi i certificati saranno pronti. Per scaricarli (in /etc/pki/tls/certs/) usare il comando:

# acme-local-certs -d

CRONTAB

Per scaricare sempre i certificati aggiornati è possibile mettere il comando a crontab.

Questo esce con exit-status 0 solo se i file scaricati sono nuovi rispetto a quelli locali.

Quindi si può aggiungere, ad esempio la seguente riga al crontab:

15 10 * * tue /usr/local/sbin/acme-local-certs -d && systemctl reload httpd

Caricamento certificati sul firewall

Per caricare certificato e chiave privata sul nostro Fortigate (con nome <HOST>-acme):

# acme-local-certs -w

La procedura di rinnovo dei certificati aggiornerà inoltre sempre il certificato.

===== Generazione manuale CSR ===== Se necessario un certificato con nomi multipli, prima di lanciare acme-local-certs -r, generare manualmente la CSR e se non già esistente la relativa chiave privata: Generazione manuale chiave privata: # openssl genrsa 4096 > /etc/pki/tls/private/hostname.f.q.d.n.key # chmod 600 /etc/pki/tls/private/hostname.f.q.d.n.key Generazione CSR per nomi multipli: # openssl req -new -sha256 -key /etc/pki/tls/private/hostname.f.q.d.n.key -subj "/C=IT/ST=Rome/L=Frascati/O=INFN/OU=LNF/CN=www.yoursite.com" -reqexts SAN -config <(cat /etc/pki/tls/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:www.yoursite.com,DNS:yoursite.com")) -out /etc/pki/tls/certs/hostname.f.q.d.n.csr Caricare la CSR su acme.lnf.infn.it: acme-local-certs [-H host.cn] [-D /path/] [-P /path/] -r

strutture/lnf/dr/calcolo/acme.txt · Last modified: 2022/11/15 09:17 by dmaselli@infn.it