--- title: "Générer et mettre à jour automatiquement un certificat \"wildcard\" let's encrypt." summary: "brief decription to sum up" author: - JF date: 2019-12-16 --- # Générer et mettre à jour automatiquement un certificat "wildcard" let's encrypt. ## Installation de acme.sh ```bash # 1 - Beeing root SYNOPATH="/volume1/something" cd $SYNOPATH git clone https://github.com/acmesh-official/acme.sh.git ./acme.sh/acme.sh --install --nocron --home $SYNOPATH/acme.sh/.acme.sh --accountemail "admin@savaneprod.fr" ``` Sur DSM, les certificats se trouvent dans `/usr/syno/etc/certificate/_archive/`. ## Mise à jour automatique du certificat ### Chez Gandi Utilsation de l'API Gandi : [https://github.com/acmesh-official/acme.sh/wiki/dnsapi#18-use-gandi-livedns-api](https://github.com/acmesh-official/acme.sh/wiki/dnsapi#18-use-gandi-livedns-api) ### Le script de mise à jour ```bash SYNOPATH="/volume1/something" jour=$(date +%Y-%m-%d) file='$SYNOPATH/Certificats/'$jour'.log' HOME_orig=$HOME HOME="$SYNOPATH/Certificats/.acme.sh" export GANDI_LIVEDNS_KEY="la clef récupérée chez Gandi" export SYNO_Certificate="savaneprod.fr cert" export SYNO_Create=0 export SYNO_Username="admin_c_pas_top" export SYNO_Password="Un mdp de ouf" echo "*********************************************" 2>&1 | tee -a $file echo " Mise à jour du certificat *.savaneprod.fr" 2>&1 | tee -a $file echo "*********************************************" 2>&1 | tee -a $file bash $SYNOPATH/Certificats/acme.sh/acme.sh --home $HOME --renew -d savaneprod.fr -d '*.savaneprod.fr' --dns dns_gandi_livedns --force --log 2>&1 | tee -a $file bash $SYNOPATH/Certificats/acme.sh/acme.sh --home $HOME -d savaneprod.fr -d "*.savaneprod.fr" --deploy --deploy-hook synology_dsm --log 2>&1 | tee -a $file echo "---------------------------------" 2>&1 | tee -a $file echo " Fin du script de mise à jour." 2>&1 | tee -a $file echo "*********************************" 2>&1 | tee -a $file ``` ### La conf dans DSM dans le planificateur de tâches ![Planificateur de tâche, onglet "General"](task_general-tab.png) J'ai finalement décidé de renouveler tous les mois parce que le Synology propose tous les 3 mois mais la durée de vie du certificat est légèrement inférieure. Et je n'ai pas cherché à configurer le renouvellement tous les deux mois. ![Planificateur de tâches, onglet "Schedule"](task_Schedule-tab.png) Exécution du script. Il faut bien entendu que le script ait la permission d'éxécution configurée. ![Planificateur de tâches, onglet "Task Settings"](task_setting-tab.png)