User Tools

Site Tools


strutture:lnf:dr:calcolo:acme

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
strutture:lnf:dr:calcolo:acme [2022/03/23 15:38] – [Richiesta Certificato] dmaselli@infn.itstrutture:lnf:dr:calcolo:acme [2022/11/15 09:17] (current) dmaselli@infn.it
Line 1: Line 1:
 +====== 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:
 +<code>
 +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)
 +
 +</code>
 +
 +
 +===== 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.
 +
 +
 +
 +<del>===== 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
 +  
 +
 +
 +</del>

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki