informatique:serveur:web-linux-apache:ssl-let-s_encrypt-certbot-auto

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
informatique:serveur:web-linux-apache:ssl-let-s_encrypt-certbot-auto [2023/02/09 17:12] – ↷ Liens modifiés en raison d'un déplacement. Cédric ABONNELinformatique:serveur:web-linux-apache:ssl-let-s_encrypt-certbot-auto [2023/02/10 23:48] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. Cédric ABONNEL
Ligne 1: Ligne 1:
 +====== [OBSOLÈTE] certbot auto pour Let's Encrypt ======
 +{{ informatique:applications:pasted:20200507-002818.png?75x75|cerbot pour let's encrypt}}
 +
 +<WRAP center round important 60%>
 +Depuis 2020, l'installation s'effectue depuis **certbot** avec **snap**
 +
 +Suivez le guide dans l'article [[informatique:serveur:web-linux-apache:ssl-let-s-encrypt-certbot]]
 +</WRAP>
 +
 +
 +**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.
 +
 +===== - Télécharger CERTBOT =====
 +
 +En terminal, j’exécute ''wget''
 +
 +<code>
 +wget https://dl.eff.org/certbot-auto
 +</code>
 +
 +===== - Déployer CERTBOT =====
 +
 +<code>
 +sudo mv certbot-auto /usr/local/bin/certbot-auto
 +sudo chown root /usr/local/bin/certbot-auto
 +sudo chmod 0755 /usr/local/bin/certbot-auto
 +/usr/local/bin/certbot-auto --install-only
 +</code>
 +
 +===== - Application CERTBOT pour un domaine =====
 +
 +Exécution de l'utilitaire pour configurer un site avec les options suivantes :
 +
 +<code>
 +read -p "Quel est votre nom de domaine ? " siteName
 +read -p "Dossier Web du site ? " dirWeb
 +sudo certbot-auto certonly --webroot -w $dirWeb -d $siteName --register-unsafely-without-email
 +</code>
 +
 +L'avantage de ce script :
 +  * pas d'arrêt d'Apache 2
 +  * pas de mail à saisir
 +  * autonomie sur la configuration Apache 2
 +
 +Quelques **chemins** à retenir :
 +
 +^ fichier de configuration  | /etc/letsencrypt/renewal/$siteName.conf  |
 +^ dossier archive | /etc/letsencrypt/archive/$siteName  |
 +^ fichier cert  | /etc/letsencrypt/live/$siteName/cert.pem  |
 +^ fichier privkey  | /etc/letsencrypt/live/$siteName/privkey.pem  |
 +^ fichier chain  | /etc/letsencrypt/live/$siteName/chain.pem  |
 +^ fichier fullchain  | /etc/letsencrypt/live/$siteName/fullchain.pem  |
 +
 +
 +
 +===== - Application CERTBOT pour un domaine principal  =====
 +
 +Exécution de l'utilitaire pour configurer un domaine principal. Un domaine principal est accessible avec les //www// et sans :
 +
 +<code>
 +echo "Quel nom de domaine (avec www) ?"
 +read siteNameWww
 +echo "Quel nom de domaine (sans les www) ?"
 +read siteName
 +certbot-auto certonly --webroot -w /var/www/html/ -d $siteNameWww -d $siteName --register-unsafely-without-email
 +</code>
 +
 +L'avantage de ce script :
 +  * pas d'arrêt d'Apache 2
 +  * pas de mail à saisir
 +  * autonomie sur la configuration Apache 2
 +
 +Quelques **chemins** à retenir :
 +
 +^ fichier de configuration  | /etc/letsencrypt/renewal/$siteNameWww.conf  |
 +^ dossier archive | /etc/letsencrypt/archive/$siteNameWww  |
 +^ fichier cert  | /etc/letsencrypt/live/$siteNameWww/cert.pem  |
 +^ fichier privkey  | /etc/letsencrypt/live/$siteNameWww/privkey.pem  |
 +^ fichier chain  | /etc/letsencrypt/live/$siteNameWww/chain.pem  |
 +^ fichier fullchain  | /etc/letsencrypt/live/$siteNameWww/fullchain.pem  |
 +
 +
 +===== - Renouveler les certificats =====
 +
 +Il suffit d’exécuter la commande :
 +<code>
 +$ sudo certbot-auto renew
 +</code>
 +
 +Les paramètres ''cerbot'' sont automatiquement traités et une mise à jour des certificats sont opérés.
 +
 +Il faudra redémarrer le service Web (par exemple ''systemctl reload apache2'').
 +===== - Renouveler les certificats automatiquement =====
 +
 +Éditer la tâche des tâches Linux du compte ''root'', //crontab// :
 +<code>
 +sudo crontab -e
 +</code>
 +
 +La 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''.
 +
 +<code>
 +0 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
 +</code>
 +Explications :
 +<html><pre>
 +Tous les deux mois ( 0 23 1-7 <strong>*/2</strong> 4 )
 +à 23 heures ( <strong>0 23</strong> 1-7 */2 4 ),
 +le premier jeudi ( 0 0 <strong>1-7</strong> */2 <strong>4</strong> ),
 +lancement d'un script Python, qui retarde 1 heure au maximum (random.random() * 3600),
 +l’exécution de la mise à jour de certbot.
 +</pre></html>
 +===== - Afficher les dates du certificats =====
 +
 +<code>
 +sudo ls /etc/letsencrypt/live/
 +read -p "Quel est votre nom de domaine ?" siteName
 +sudo openssl x509 -noout -dates -in /etc/letsencrypt/live/$siteName/fullchain.pem
 +</code>
 +
 +===== - Réinitialiser la configuration Let's Encrypt =====
 +
 +<code BASH letsencrypt_erase>
 +#!/bin/bash
 +# réinitialiser let's encrypt pour un domaine precis
 +echo Affichage des noms possibles :
 +sudo ls /etc/letsencrypt/live
 +echo .
 +echo "Quel nom de domaine ?"
 +read siteName
 +sudo rm -fr /etc/letsencrypt/live/$siteName/
 +sudo rm /etc/letsencrypt/renewal/$siteName.conf 
 +sudo rm -fr /etc/letsencrypt/archive/$siteName/
 +</code>
 +
 +
 +