Générer et mettre à jour automatiquement un certificat "wildcard" let's encrypt.

Installation de acme.sh

# 1 - Being 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

Le script de mise à jour

SYNOPATH="/volume1/something"
API="dns_gandi_livedns"

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 $API --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

Chez infomaniak

Création d'un token d'API pour gérer les entrées DNS * On peut alors modifier le script avec les valeurs suivantes :

API="dns_infomaniak_add"
export INFOMANIAK_API_TOKEN="mon_t0k3n_9uil_e2t_grand_et_b1en_utile"

Il faut le sauvegarder en lieu sûr, car une fois créé il ne sera plus possible de le consulter.

La conf dans DSM dans le planificateur de tâches

Planificateur de tâche, onglet "General"

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"

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"