{"uuid":"1bb05f2d-90e9-46bc-842d-c898dea0499b","slug":"ssl-let-s-encrypt-certbot-auto","title":"[OBSOLÈTE] certbot auto pour Let's Encrypt","author":"cedric@abonnel.fr","published":true,"published_at":"2023-02-10 22:48:33","created_at":"2023-02-10 22:48:33","updated_at":"2023-02-10 22:48:33","revisions":[],"cover":"","files_meta":[],"external_links":[],"seo_title":"","seo_description":"","og_image":"","category":"Informatique","content":"# [OBSOLÈTE] certbot auto pour Let's Encrypt\n\n![cerbot pour let's encrypt](20200507-002818.png)\n\nDepuis 2020, l'installation s'effectue depuis **certbot** avec **snap**\n\nSuivez le guide dans l'article \n\n**Certbot** est un binaire qui permet de mettre en œuvre un certificat SSL pour un domaine d'un site Internet. **Certbot-auto** est une solution complète qui permet d’exécuter *Certbot* de manière optimale.\n\n## - Télécharger CERTBOT\nEn terminal, j’exécute `wget`\n\n```\nwget https:*dl.eff.org/certbot-auto\n```\n\n## - Déployer CERTBOT\n```\nsudo mv certbot-auto /usr/local/bin/certbot-auto\nsudo chown root /usr/local/bin/certbot-auto\nsudo chmod 0755 /usr/local/bin/certbot-auto\n/usr/local/bin/certbot-auto --install-only\n```\n\n## - Application CERTBOT pour un domaine\nExécution de l'utilitaire pour configurer un site avec les options suivantes :\n\n```\nread -p \"Quel est votre nom de domaine ? \" siteName\nread -p \"Dossier Web du site ? \" dirWeb\nsudo certbot-auto certonly --webroot -w $dirWeb -d $siteName --register-unsafely-without-email\n```\n\nL'avantage de ce script :\n- pas d'arrêt d'Apache 2\n- pas de mail à saisir\n- autonomie sur la configuration Apache 2\n\nQuelques **chemins** à retenir :\n\n| fichier de configuration | /etc/letsencrypt/renewal/$siteName.conf | |\n| ---------------------------------------------------------------------- |\n| dossier archive | /etc/letsencrypt/archive/$siteName | |\n| fichier cert | /etc/letsencrypt/live/$siteName/cert.pem | |\n| fichier privkey | /etc/letsencrypt/live/$siteName/privkey.pem | |\n| fichier chain | /etc/letsencrypt/live/$siteName/chain.pem | |\n| fichier fullchain | /etc/letsencrypt/live/$siteName/fullchain.pem | |\n\n## - Application CERTBOT pour un domaine principal\nExécution de l'utilitaire pour configurer un domaine principal. Un domaine principal est accessible avec les *www* et sans :\n\n```\necho \"Quel nom de domaine (avec www) ?\"\nread siteNameWww\necho \"Quel nom de domaine (sans les www) ?\"\nread siteName\ncertbot-auto certonly --webroot -w /var/www/html/ -d $siteNameWww -d $siteName --register-unsafely-without-email\n```\n\nL'avantage de ce script :\n- pas d'arrêt d'Apache 2\n- pas de mail à saisir\n- autonomie sur la configuration Apache 2\n\nQuelques **chemins** à retenir :\n\n| fichier de configuration | /etc/letsencrypt/renewal/$siteNameWww.conf | |\n| ------------------------------------------------------------------------- |\n| dossier archive | /etc/letsencrypt/archive/$siteNameWww | |\n| fichier cert | /etc/letsencrypt/live/$siteNameWww/cert.pem | |\n| fichier privkey | /etc/letsencrypt/live/$siteNameWww/privkey.pem | |\n| fichier chain | /etc/letsencrypt/live/$siteNameWww/chain.pem | |\n| fichier fullchain | /etc/letsencrypt/live/$siteNameWww/fullchain.pem | |\n\n## - Renouveler les certificats\nIl suffit d’exécuter la commande :\n```\n$ sudo certbot-auto renew\n```\n\nLes paramètres `cerbot` sont automatiquement traités et une mise à jour des certificats sont opérés.\n\nIl faudra redémarrer le service Web (par exemple `systemctl reload apache2`).\n## - Renouveler les certificats automatiquement\nÉditer la tâche des tâches Linux du compte `root`, *crontab// :\n```\nsudo crontab -e\n```\n\nLa tâche doit exécutée le programme `certbot-auto` avec l'option de renouvellement, `renew`. L'option `post-hook` permet d'indiquer la commande à exécuter après le traitement de `certbot-auto`. Dans notre cas, on demande à `systemctl` de recharger la configuration `Apache 2`.\n\n```\n0 23 1-7 */2 4 python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew --post-hook \"systemctl reload apache2\" >> /var/log/letsencrypt/renew.log\n```\nExplications :\n
\nTous les deux mois ( 0 23 1-7 */2 4 )\nà 23 heures ( 0 23 1-7 */2 4 ),\nle premier jeudi ( 0 0 1-7 */2 4 ),\nlancement d'un script Python, qui retarde 1 heure au maximum (random.random() * 3600),\nl’exécution de la mise à jour de certbot.\n
\n## - Afficher les dates du certificats\n```\nsudo ls /etc/letsencrypt/live/\nread -p \"Quel est votre nom de domaine ?\" siteName\nsudo openssl x509 -noout -dates -in /etc/letsencrypt/live/$siteName/fullchain.pem\n```\n\n## - Réinitialiser la configuration Let's Encrypt\n```BASH\n#!/bin/bash\n# réinitialiser let's encrypt pour un domaine precis\necho Affichage des noms possibles :\nsudo ls /etc/letsencrypt/live\necho .\necho \"Quel nom de domaine ?\"\nread siteName\nsudo rm -fr /etc/letsencrypt/live/$siteName/\nsudo rm /etc/letsencrypt/renewal/$siteName.conf \nsudo rm -fr /etc/letsencrypt/archive/$siteName/\n```","featured":false,"tags":[]}