LetsEncrypt è un servizio che fornisce agli utenti certificati SSL / TLS gratuiti. Certbot è un client che lo rende facile da realizzare e automatizzare. Inoltre, ha plugin per Apache e Nginx che rendono ancora più semplice l'automazione della generazione di certificati.
Le istruzioni di installazione per la maggior parte delle distribuzioni Linux sono disponibili sul sito Web di Certbot.

Una volta installati i pacchetti, si è pronti per generare un nuovo certificato.
apache
Dopo aver installato Certbot e il plug-in Apache, la generazione del certificato viene eseguita con il seguente comando.
certbot con certezza --apache --noninteractive --agree-tos --email YOUR_EMAIL -d DOMAIN_NAME
Aggiornare le sezioni "SSLCertificateFile" e "SSLCertificateKeyFile", quindi riavviare il servizio.
Aggiungi un lavoro a cron in modo che il certificato venga rinnovato automaticamente.
echo "0 0 * * * root certbot rinnova --quiet --no-self-upgrade --post-hook $0027systemctl ricarica apache2$0027" | sudo tee -a /etc/cron.d/renew_certbot
HAProxy
HAProxy non ha attualmente un plug-in Certbot. Per evitare ciò, eseguire Certbot in modalità autonoma e il traffico proxy attraverso la rete.
Abilitare il frontend e il backend nella configurazione sopra, quindi eseguire Certbot.
certbot certonly --standalone --preferred-challenge http-01 --http-01-port 8888 --noninteractive --agree-tos --email YOUR_EMAIL -d DOMAIN_NAME
La porta può essere cambiata come preferisci, ma assicurati che le impostazioni HAProxy e il tuo comando Certbot corrispondano.
HAProxy deve avere il certificato e i file delle chiavi concatenati nello stesso file per poterlo leggere correttamente. Questo può essere realizzato con il seguente comando.
cat /etc/letsencrypt/live/domain_name/fullchain.pem /etc/letsencrypt/live/domain_name/privkey.pemAbbattere il bind *: 443 e la sezione di reindirizzamento nelle impostazioni, quindi ricaricare il servizio.
Rinnovo automatico dei certificati
Metti il seguente script in / usr / local / bin / per aggiornare automaticamente il tuo certificato SSL.
SITO = DOMAIN_NAME# passa a quello corretto crittograferemo directorycd / etc / letsencrypt / live / $SITIO# file cat per fare .pem combinato per haproxycat fullchain.pem privkey.pem> /etc/ssl/$SITIO.pem1TPxer reloadAssicurarsi che lo script sia eseguibile.
chmod u + x /usr/local/bin/letsencrypt-renew.shAggiungi un lavoro a cron in modo che il certificato venga rinnovato automaticamente.
@mensual / usr / bin / certbot renew --renew-hook "/usr/local/bin/letsencrypt-renew.sh"; /var/log/letsencrypt-renewal.lognginx
Dopo aver installato Certbot e il plug-in Nginx con sudo apt installa certbot python3-certbot-nginx, genera il certificato.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email YOUR_EMAIL -d YOUR_DOMAINAggiungi il parametro --rsa-key-size 4096 se vuoi invece una chiave a 4096 bit.
Copia e incolla l'intero file di configurazione di esempio Nginx dall'alto, modificando i parametri in base alla tua configurazione e decommentando le linee.
Aggiungi un lavoro a cron in modo che il certificato venga rinnovato automaticamente.
echo "0 0 * * * root certbot rinnova --quiet --no-self-upgrade --post-hook $0027systemctl ricarica nginx$0027" | sudo tee -a /etc/cron.d/renew_certbot