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
- Utilisation de l'API infomaniak : https://github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_infomaniak
- Création d'un token d'API pour la gestion des entrées DNS : Depuis la page d'accueil. Aller dans "Utilisateur et profil", "Mon profil", "Développeur" et "Tokens API".
* 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
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.
Exécution du script. Il faut bien entendu que le script ait la permission d'éxécution configurée.