abonnel-siteweb/data/pages/informatique/serveur/web-linux-apache/ssl-let-s_encrypt-certbot-a...

138 lines
4.7 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

====== [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 dexécuter //Certbot// de manière optimale.
===== - Télécharger CERTBOT =====
En terminal, jexé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 dexé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),
lexé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>