123 lines
4.5 KiB
Markdown
123 lines
4.5 KiB
Markdown
# [OBSOLÈTE] certbot auto pour Let's Encrypt
|
||
|
||

|
||
|
||
Depuis 2020, l'installation s'effectue depuis **certbot** avec **snap**
|
||
|
||
Suivez le guide dans l'article
|
||
|
||
**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`
|
||
|
||
```
|
||
wget https:*dl.eff.org/certbot-auto
|
||
```
|
||
|
||
## - Déployer CERTBOT
|
||
```
|
||
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
|
||
```
|
||
|
||
## - Application CERTBOT pour un domaine
|
||
Exécution de l'utilitaire pour configurer un site avec les options suivantes :
|
||
|
||
```
|
||
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
|
||
```
|
||
|
||
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 :
|
||
|
||
```
|
||
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
|
||
```
|
||
|
||
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 :
|
||
```
|
||
$ sudo certbot-auto renew
|
||
```
|
||
|
||
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// :
|
||
```
|
||
sudo crontab -e
|
||
```
|
||
|
||
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`.
|
||
|
||
```
|
||
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
|
||
```
|
||
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
|
||
```
|
||
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
|
||
```
|
||
|
||
## - Réinitialiser la configuration Let's Encrypt
|
||
```BASH
|
||
#!/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/
|
||
``` |