LetsEncrypt est un service qui fournit aux utilisateurs des certificats SSL / TLS gratuits. Certbot est un client qui rend cela facile à réaliser et à automatiser. En outre, il possède des plugins pour Apache et Nginx qui rendent l'automatisation de la génération de certificats encore plus facile.
Les instructions d'installation de la plupart des distributions Linux se trouvent sur le site Web de Certbot.

Une fois les packages installés, vous êtes prêt à générer un nouveau certificat.
Apache
Après avoir installé Certbot et le plugin Apache, la génération du certificat se fait avec la commande suivante.
certbot certonly --apache --noninteractive --agree-tos --email YOUR_EMAIL -d DOMAIN_NAME
Mettez à jour les sections "SSLCertificateFile" et "SSLCertificateKeyFile", puis redémarrez le service.
Ajoutez un travail à cron pour que le certificat soit automatiquement renouvelé.
echo "0 0 * * * root certbot renouvellement --quiet --no-self-upgrade --post-hook $0027systemctl reload apache2$0027" | sudo tee -a /etc/cron.d/renew_certbot
HAProxy
HAProxy n'a actuellement pas de plugin Certbot. Pour éviter cela, exécutez Certbot en mode autonome et le trafic proxy via votre réseau.
Activez le frontend et le backend dans la configuration ci-dessus, puis exécutez Certbot.
certbot certonly --standal --preferred-challenges http-01 --http-01-port 8888 --noninteractive --agree-tos --email YOUR_EMAIL -d DOMAIN_NAME
Le port peut être modifié comme vous le souhaitez, mais assurez-vous que les paramètres HAProxy et votre commande Certbot correspondent.
HAProxy doit avoir le certificat et les fichiers de clé concaténés dans le même fichier afin de le lire correctement. Cela peut être accompli avec la commande suivante.
cat /etc/letsencrypt/live/domain_name/fullchain.pem /etc/letsencrypt/live/domain_name/privkey.pemDécomposez le bind *: 443 et la section de redirection dans les paramètres, puis rechargez le service.
Renouvellement automatique des certificats
Placez le script suivant dans / usr / local / bin / pour mettre à jour automatiquement votre certificat SSL.
SITE = DOMAIN_NAME# passez à la bonne, nous allons crypter les fichiers de répertoire directorycd / etc / letsencrypt / live / $SITIO# pour faire des fichiers .pem combinés pour haproxycat fullchain.pem privkey.pem> /etc/ssl/$SITIO.pem1TPxer rechargerAssurez-vous que le script est exécutable.
chmod u + x /usr/local/bin/letsencrypt-renew.shAjoutez un travail à cron pour que le certificat soit automatiquement renouvelé.
@mensual / usr / bin / certbot renouvelle --renew-hook "/usr/local/bin/letsencrypt-renew.sh"; /var/log/letsencrypt-renewal.logNginx
Après avoir installé Certbot et le plugin Nginx avec sudo apt installez certbot python3-certbot-nginx, générez le certificat.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email YOUR_EMAIL -d YOUR_DOMAINAjoutez le paramètre --rsa-key-size 4096 si vous voulez une clé 4096 bits à la place.
Copiez et collez l'intégralité du fichier de configuration exemple Nginx par le haut, en modifiant les paramètres en fonction de votre configuration et en décommentant les lignes.
Ajoutez un travail à cron pour que le certificat soit automatiquement renouvelé.
echo "0 0 * * * root certbot renouvellement --quiet --no-self-upgrade --post-hook $0027systemctl reload nginx$0027" | sudo tee -a /etc/cron.d/renew_certbotTable des matières