Aller au contenu principal

ssl-renew-certificate

Pour renouveler automatiquement un certificat SSL Let's Encrypt en utilisant un script Bash, vous pouvez utiliser certbot, un outil populaire pour gérer les certificats Let's Encrypt. Voici un exemple de script Bash qui renouvelle automatiquement un certificat SSL :

Étape 1 : Installer Certbot

Assurez-vous que certbot est installé sur votre système. Vous pouvez l'installer avec les commandes suivantes :

  • Sur Ubuntu/Debian :

    sudo apt update
    sudo apt install certbot
  • Sur CentOS/RHEL :

    sudo yum install epel-release
    sudo yum install certbot

Étape 2 : Créer un script Bash

Créez un fichier script Bash, par exemple renew_ssl.sh, et ajoutez le contenu suivant :

#!/bin/bash

# Chemin vers le fichier de log
LOGFILE="/var/log/letsencrypt/renewal.log"

# Date et heure de début
echo "Début du renouvellement du certificat SSL : $(date)" >> $LOGFILE

# Renouvellement du certificat SSL avec Certbot
certbot renew --quiet --post-hook "systemctl reload nginx"

# Vérification du statut de la commande
if [ $? -eq 0 ]; then
echo "Renouvellement réussi : $(date)" >> $LOGFILE
else
echo "Erreur lors du renouvellement : $(date)" >> $LOGFILE
fi

Étape 3 : Rendre le script exécutable

Rendez le script exécutable avec la commande suivante :

chmod +x /chemin/vers/renew_ssl.sh

Étape 4 : Automatiser le renouvellement avec Cron

Pour automatiser l'exécution de ce script, vous pouvez utiliser cron. Ouvrez l'éditeur de crontab avec la commande suivante :

crontab -e

Ajoutez la ligne suivante pour exécuter le script tous les jours à minuit :

0 0 * * * /chemin/vers/renew_ssl.sh

Explication du script :

  • certbot renew --quiet --post-hook "systemctl reload nginx" : Cette commande renouvelle le certificat SSL si nécessaire. L'option --quiet réduit la sortie, et --post-hook permet de redémarrer le serveur web (dans cet exemple, Nginx) après le renouvellement.
  • Le script enregistre les résultats dans un fichier de log (/var/log/letsencrypt/renewal.log) pour un suivi ultérieur.

Étape 5 : Tester le script

Vous pouvez tester le script manuellement pour vous assurer qu'il fonctionne correctement :

sudo /chemin/vers/renew_ssl.sh

Conclusion

Ce script Bash automatisera le renouvellement de votre certificat SSL Let's Encrypt et redémarrera votre serveur web si nécessaire. L'utilisation de cron garantit que ce processus est répété régulièrement sans intervention manuelle.