Dans mon premier article sur ce blog, j’ai mentionné avoir installé un certificat wildcard (*.celeri.net) sur mon NAS Synology. Les avantages sont nombreux, à commencer par celui de ne pas avoir à remplacer celui en place (ou en ajouter un nouveau) à chaque fois que je décide d’utilier un nouveau sous-domaine. Synology ne permet pas (pour le moment ?) d’installer des certificats wildcard sur ses NAS, mais on peut néanmoins utiliser les lignes de commande.
- On ouvre une connexion SSH sur le NAS avec « admin » comme login
- On commence par télécharger le script de création du certificat :
wget https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.shchmod a+x acme.sh
- On lance la requête permettant de créer le certificat :
./acme.sh --issue -d *.celeri.net --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please [--force]
- En résultat, on obtient notamment les lignes suivantes :
- Domain: ‘_acme-challenge.celeri.net’
- TXT value: ‘qtlbfy4_7PYLwcQl1ya63tqYDw1SF2fKdx4OMJk6yaU’
- Dans le Manager d’OVH, dans la zone DNS de mon domaine « celeri.net », on crée une entrée de type TXT avec ces éléments pour permettre au challenge d’être réalisé sur le nom de domaine :

- Retour au Syno, on lance la validation du nom de domaine chez Let’s Encrypt :
./acme.sh --renew -d *.celeri.net --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please [--force]
- En résultat, on obtient la création des fichiers nécessaires, comme annoncé en fin d’output :
- Your cert is in /var/services/homes/admin/.acme.sh/.celeri.net/.celeri.net.cer
- Your cert key is in /var/services/homes/admin/.acme.sh/.celeri.net/.celeri.net.key
- The intermediate CA cert is in /var/services/homes/admin/.acme.sh/*.celeri.net/ca.cer
- And the full chain certs is there: /var/services/homes/admin/.acme.sh/*.celeri.net/fullchain.cer
- Ces fichiers sont précieux, et méritent donc d’être enregistrés dans un dossier à part :
rm ~/Certs/celeri.net/* ; cp /var/services/homes/admin/.acme.sh/celeri.net/{celeri.net.cer,celeri.net.key,ca.cer} ~/Certs/celeri.net/
- On récupère alors ces fichiers via l’interface web du Syno (ou via SFTP)
- On crée un nouveau certificat en choississant l’option « Remplacer un certificat existant » (puisqu’il existe déjà; sinon choisir « Ajouter un nouveau certificat ») :

- Puis on choisit la fonction d’importation en pensant bien à indiquer que ce sera le certificat par défaut :

- Puis on choisit les bons fichiers :

Après un certain temps de traitement et un redémarrage du serveur web, normalement le nouveau certificat est fonctionnel !
À noter que cette méthode, puisqu’elle repose sur Let’s Encrypt par souci d’économie, ne permet de disposer que de certificats valables 3 mois, et qu’elle doit être reproduite à chaque fois manuellement car nécessite à la fois des manipulations sur le NAS et sur le serveur DNS. Le coût de la gratuité, en somme…
[MàJ – 25/05/2020] : Afin de permettre de renouveler plus facilement le certificat, j’ai mis à jour le script ACME.sh et ai implémenté l’API DNS d’OVH, ce qui fait que l’entrée TXT se met à jour automatiquement. Normalement, il n’y a donc plus qu’une seule commande à saisir sur le NAS avant de retourner à l’étape 7 :
cd acme.sh.
https://www.nas-forum.com/forum/topic/59379-lets-encrypt-certificats-wildcard//acme.sh --issue -d celeri.net -d '*.celeri.net' --dns dns_ovh