le-meilleur-tuto-pour-la-creationd-un-certificat-wildcard-sur-synology
Informatique, Techno, Web & Apps

Le meilleur tuto pour la création d’un certificat Wildcard sur Synology

J’ai passé des heures à chercher en vain une solution à mon problème de certificat Wildcard avec mon NAS Synology. En effet, j’étais exigent (comme toujours), je souhaite créer et surtout renouveler automatiquement mon certificat Wildcard. Ca c’est plutôt «simple», mais je souhaitai également automatiser la création des enregistrements DNS sur mon domaine OVH. Bref ne plus avoir rien à faire !

Pour créer mon certificat, j’utilisai jusqu’à maintenant le service «SSL for Free». Sauf que depuis mai 2020, ce service n’est plus gratuit pour les certificats «Wildcard». Je ne souhaitai pas payer pour récupérer un certificat qui est à la base fourni gratuitement par Let’s Encrypt.

En toute modestie, je vous annonce que ce tutoriel va vous permettre de gagner de précieuses heures. Bon OK en période de confinement ou de couvre-feu ça n’a plus trop de sens… mais c’est toujours ça de prit !

Néanmoins, je n’ai rien inventé et je me suis inspiré de plusieurs autres tutoriaux (notamment celui d’Oracle7 du site très bon site nas-forum.com) pour arriver à quelque chose de simple et qui je pense pourra convenir à d’autres. J’ai simplement synthétisé son tutoriel pour ne garder que l’essentiel selon moi.

Préambule

En préambule, ce tutoriel va vous permettre de générer votre certificat Wildcard sans avoir à ouvrir et exposer à Internet les ports 80 et 443.

L’alternative qui sera utilisée ici, c’est l’utilisation de la méthode par validation dite par DNS basée sur le protocole «DNS-01». Avec cette méthode, plus besoin d’ouvrir ses ports, par contre, vous devez disposer de l’accès à la zone DNS du domaine pour lequel vous souhaitez créer le certificat.

Nous allons ici utiliser la méthode avec le fournisseur OVH, mais vous pouvez très bien l’utiliser et l’adapter avec d’autres fournisseurs. Vous trouverez ici la liste des fournisseurs pris en charge. Les paramètres diffèrent, mais le principe reste le même.

Installation du script «acme.sh»

Pendant toute la durée de la procédure, vous devez rester connecté sur la même session SSH. Attention donc à ne pas la déconnectée et à ne pas subir un timeout.

L’installation du script shell «acme.sh» doit se faire dans un répertoire qui n’est pas impacté lors des mises à jour de DSM. Nous allons donc créer un répertoire spécifique qui ne sera pas impacté.

cd /volume1
mkdir -p Certificats/Acme_install
cd Certificats/Acme_install

Ensuite nous allons télécharger l’archive «master.tar.gz» d’acme.sh sur le GitHub:

wget https://github.com/acmesh-official/acme.sh/archive/master.tar.gz

On décompresse l’archive téléchargée et on se place dans le répertoire décompressé:

tar xvf master.tar.gz
cd acme.sh-master

On lance ensuite l’installation du script en ajoutant au passage votre adresse email. Nous spécifierons la variable «CERT_HOME» qui correspond au répertoire où seront générés les fichiers du certificat :

ACME_HOME="/usr/local/share/acme.sh"
CERT_HOME="/volume1/Certificats
./acme.sh --install --nocron --home "$ACME_HOME" --cert-home "$CERT_HOME" --accountemail "email@gmail.com"

Vous devriez avoir un réponse de ce type :

[Wed Feb  3 08:15:35 CET 2021] It is recommended to install socat first.
[Wed Feb  3 08:15:35 CET 2021] We use socat for standalone server if you use standalone mode.
[Wed Feb  3 08:15:35 CET 2021] If you don't use standalone mode, just ignore this warning.
[Wed Feb  3 08:15:35 CET 2021] Installing to /usr/local/share/acme.sh
[Wed Feb  3 08:15:35 CET 2021] Installed to /usr/local/share/acme.sh/acme.sh
[Wed Feb  3 08:15:35 CET 2021] Installing alias to '/root/.profile'
[Wed Feb  3 08:15:35 CET 2021] OK, Close and reopen your terminal to start using acme.sh
[Wed Feb  3 08:15:36 CET 2021] Good, bash is found, so change the shebang to use bash as preferred.
[Wed Feb  3 08:15:39 CET 2021] OK

Ne tenez pas compte de l’erreur, elle indique simplement qu’il nous manque un paquet si nous souhaitons utiliser le mode «standalone». Nous ne l’utiliserons pas, donc nous pouvons ignorer cette erreur.

Ensuite, il faut générer le fichier «.profile» de l’utilisateur courant («root») afin de pouvoir utiliser immédiatement les commandes shell. Pour ce faire, vous devez taper la commande suivante:

source ~/.profile

Vous devez ensuite donner le droit d’exécution au script avec la commande:

cd $ACME_HOME
chmod a+x acme.sh

On active la mise à jour automatique du client:

./acme.sh --upgrade --auto-upgrade

Vous devriez obtenir le résultat suivant:

[Wed Feb  3 08:16:40 CET 2021] Installing from online archive.
[Wed Feb  3 08:16:40 CET 2021] Downloading https://github.com/acmesh-official/acme.sh/archive/master.tar.gz
[Wed Feb  3 08:16:43 CET 2021] Extracting master.tar.gz
[Wed Feb  3 08:16:43 CET 2021] It is recommended to install socat first.
[Wed Feb  3 08:16:43 CET 2021] We use socat for standalone server if you use standalone mode.
[Wed Feb  3 08:16:43 CET 2021] If you don't use standalone mode, just ignore this warning.
[Wed Feb  3 08:16:43 CET 2021] Installing to /usr/local/share/acme.sh
[Wed Feb  3 08:16:43 CET 2021] Installed to /usr/local/share/acme.sh/acme.sh
[Wed Feb  3 08:16:44 CET 2021] Good, bash is found, so change the shebang to use bash as preferred.
[Wed Feb  3 08:16:47 CET 2021] OK
[Wed Feb  3 08:16:47 CET 2021] Install success!
[Wed Feb  3 08:16:48 CET 2021] Upgrade success!

Comme tout à l’heure, ne tenez pas compte de l’erreur. Nous n’utilisons pas ce mode.

Nous avons fini la première étape, nous allons maintenant passer au paramétrage de l’API d’OVH.

Configuration des DNS via l’API OVH

Pour générer le certificat «Wilcard» et le renouveler automatiquement, nous allons utiliser l’API d’OVH.

Nous allons générer 3 clés différentes qui nous permettront de nous authentifier sur l’API et d’effectuer les actions nécessaires à la création du certificat.

Par mesure de sécurité, OVH permet de limiter les actions réalisables via son API, nous allons donc les limiter uniquement à la gestion de notre domaine et seulement cela.

GET = /domain/zone/votre-domaine.fr
GET = /domain/zone/votre-domaine.fr/*
POST = /domain/zone/votre-domaine.fr/*
PUT = /domain/zone/votre-domaine.fr/*
DELETE = /domain/zone/votre-domaine.fr/record/*

Pour cela, vous pouvez modifier et copier ce lien en modifiant votre nom de domaine cela va vous permettre de préremplir les champs sur l’interface d’OVH :

https://api.ovh.com/createToken/?GET=/domain/zone/votre-domaine.fr&GET=/domain/zone/votre-domaine.fr/&PUT=/domain/zone/votre-domaine.fr/&POST=/domain/zone/votre-domaine.fr/&DELETE=/domain/zone/votre-domaine.fr/record/

Vous n’avez plus qu’a saisir votre identifiant OVH dans le champ «Account ID or email address» et votre mot de passe dans le champ «Password». Ensuite vous devez donner un nom et une description au script dans les champs «Script name» et «Script description». Attention, le champ «Script name» n’accepte ni les espaces, ni les points ou les caractères spéciaux. Pour finir mettez la validité du script dans le champ «Validity» à la valeur «Unlimited» puis valider avec le bouton «Create keys».

Vous allez obtenir les informations d’authentification, je vous conseille de copier les clés et de les sauvegarder dans un fichier «.txt».

Nous allons revenir sur notre session SSH et taper les commandes suivantes où vous allez modifier les valeurs par les vôtres:

export OVH_END_POINT=ovh-eu
export OVH_AK="Votre_application_key"
export OVH_AS="Votre_application_secret"
export OVH_CK="Votre_consumer_key"

Création du certificat Let’s Encrypt Wildcard

Par défaut, ACME utilise une clé de chiffrement de type RSA à 2048 bits. Nous allons forcer cette clé RSA à 4096 bits pour renforcer le niveau de sécurité, ce qui se fait par l’ajout du paramètre «–keylength 4096» dans la commande de création du certificat.

Venons-en à la création du certificat à proprement parlé. Pour cela tapez les commandes suivantes en remplaçant «votre domaine.fr» par le nom de votre domaine :

cd $ACME_HOME
export CERT_DOMAIN="votre-domaine.fr"
export CERT_WDOMAIN="*.votre-domaine.fr"
export CERT_DNS="dns_ovh"
./acme.sh --issue --keylength 4096 -d "$CERT_DOMAIN" -d "$CERT_WDOMAIN" --dns "$CERT_DNS"

Si tout se déroule correctement, vous devriez obtenir le résultat suivant:

[Wed Feb  3 08:33:14 CET 2021] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Wed Feb  3 08:33:14 CET 2021] Multi domain='DNS:laescuela.fr,DNS:.laescuela.fr' [Wed Feb  3 08:33:15 CET 2021] Getting domain auth token for each domain [Wed Feb  3 08:33:19 CET 2021] Getting webroot for domain='laescuela.fr' [Wed Feb  3 08:33:19 CET 2021] Getting webroot for domain='.laescuela.fr'
[Wed Feb  3 08:33:20 CET 2021] Adding txt value: 6AUT4flm_TUKSXI35nEwT-tAjMgnEtUcdazATIIIv1z6s for domain:  _acme-challenge.laescuela.fr
[Wed Feb  3 08:33:20 CET 2021] Using OVH endpoint: ovh-eu
[Wed Feb  3 08:33:20 CET 2021] Checking authentication
[Wed Feb  3 08:33:23 CET 2021] Consumer key is ok.
[Wed Feb  3 08:33:24 CET 2021] Adding record
[Wed Feb  3 08:33:25 CET 2021] Added, sleep 10 seconds.
[Wed Feb  3 08:33:36 CET 2021] The txt record is added: Success.
[Wed Feb  3 08:33:37 CET 2021] Adding txt value: Sk3-tdbv9pgeHSHZt14YVa_S7dbMee_bRvnzTkKgYbA for domain:  _acme-challenge.laescuela.fr
[Wed Feb  3 08:33:37 CET 2021] Using OVH endpoint: ovh-eu
[Wed Feb  3 08:33:37 CET 2021] Checking authentication
[Wed Feb  3 08:33:37 CET 2021] Consumer key is ok.
[Wed Feb  3 08:33:39 CET 2021] Adding record
[Wed Feb  3 08:33:40 CET 2021] Added, sleep 10 seconds.
[Wed Feb  3 08:33:51 CET 2021] The txt record is added: Success.
[Wed Feb  3 08:33:51 CET 2021] Let's check each DNS record now. Sleep 20 seconds first.
[Wed Feb  3 08:34:12 CET 2021] You can use '--dnssleep' to disable public dns checks.
[Wed Feb  3 08:34:12 CET 2021] See: https://github.com/acmesh-official/acme.sh/wiki/dnscheck
[Wed Feb  3 08:34:12 CET 2021] Checking laescuela.fr for _acme-challenge.laescuela.fr
[Wed Feb  3 08:34:15 CET 2021] Domain laescuela.fr '_acme-challenge.laescuela.fr' success.
[Wed Feb  3 08:34:16 CET 2021] Checking laescuela.fr for _acme-challenge.laescuela.fr
[Wed Feb  3 08:34:16 CET 2021] Domain laescuela.fr '_acme-challenge.laescuela.fr' success.
[Wed Feb  3 08:34:16 CET 2021] All success, let's return
[Wed Feb  3 08:34:16 CET 2021] Verifying: laescuela.fr
[Wed Feb  3 08:34:20 CET 2021] Success
[Wed Feb  3 08:34:20 CET 2021] Verifying: *.laescuela.fr
[Wed Feb  3 08:34:24 CET 2021] Success
[Wed Feb  3 08:34:24 CET 2021] Removing DNS records.
[Wed Feb  3 08:34:24 CET 2021] Removing txt: 6AUT4flm_TUKSXI35nEwT-tAjMgnEtUcdazATIIIv1z6s for domain: _acme-challenge.laescuela.fr
[Wed Feb  3 08:34:25 CET 2021] Using OVH endpoint: ovh-eu
[Wed Feb  3 08:34:25 CET 2021] Checking authentication
[Wed Feb  3 08:34:26 CET 2021] Consumer key is ok.
[Wed Feb  3 08:34:29 CET 2021] Removed: Success
[Wed Feb  3 08:34:29 CET 2021] Removing txt: Sk3-tdbv9pgeHSHZt14YVa_S7dbMee_bRvnzTkKgYbA for domain: _acme-challenge.laescuela.fr
[Wed Feb  3 08:34:30 CET 2021] Using OVH endpoint: ovh-eu
[Wed Feb  3 08:34:30 CET 2021] Checking authentication
[Wed Feb  3 08:34:30 CET 2021] Consumer key is ok.
[Wed Feb  3 08:34:36 CET 2021] Removed: Success
[Wed Feb  3 08:34:36 CET 2021] Verify finished, start to sign.
[Wed Feb  3 08:34:36 CET 2021] Lets finalize the order.
[Wed Feb  3 08:34:36 CET 2021] Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/101560753/7685112001'
[Wed Feb  3 08:34:37 CET 2021] Downloading cert.
[Wed Feb  3 08:34:37 CET 2021] Le_LinkCert='https://acme-v02.api.letsencrypt.org/acme/cert/047120bf0677b4af1d1e53b135f3d8'
[Wed Feb  3 08:34:38 CET 2021] Cert success.
-----BEGIN CERTIFICATE-----
LqXT+fh4aa90ud.....................teKSjJo72H7lVm
-----END CERTIFICATE-----
[Wed Feb  3 08:34:38 CET 2021] Your cert is in  /volume1/Certificats/laescuela.fr/laescuela.fr.cer
[Wed Feb  3 08:34:38 CET 2021] Your cert key is in  /volume1/Certificats/laescuela.fr/laescuela.fr.key
[Wed Feb  3 08:34:38 CET 2021] The intermediate CA cert is in  /volume1/Certificats/laescuela.fr/ca.cer
[Wed Feb  3 08:34:38 CET 2021] And the full chain certs is there:  /volume1/Certificats/laescuela.fr/fullchain.cer

Déploiement du certificat sur le NAS Synology

Nous allons maintenant déployer notre certificat sur notre NAS Synology à l’aide du Synology DSM deployhook.

Nous allons paramétré le certificat avec la méthode «Annule et remplace» du certificat de sécurité par défaut. L’avantage de cette méthode est qu’elle remplace automatiquement le certificat par défaut sans avoir besoin de le mettre par défaut par la suite.

Dans votre session SSH, tapez les commandes suivantes en adaptant les valeurs à votre configuration si besoin:

cd $ACME_HOME
export SYNO_Scheme="https"
export SYNO_Hostname="localhost"
export SYNO_Port="5001"

On défini ensuite les variables d’environnement. Les «simples cotes» (‘) sont utilisées pour «échapper» les éventuels caractères spéciaux qui serait présents dans vos identifiants et mots de passe.

La variable «SYNO_Certificate» doit rester vide, elle permet de pouvoir remplacer le certificat par défaut par celui que vous avez créé.

export SYNO_Username='Identifiant'
export SYNO_Password='Mot_de_passe'
export SYNO_Certificate=""

On termine par la commande qui vous permet de déployer votre certificat:

./acme.sh --deploy -d "$CERT_DOMAIN" --deploy-hook synology_dsm

Vous devriez voir le résultat suivant:

[Wed Feb 3 08:40:24 CET 2021] Logging into localhost:5001
[Wed Feb 3 08:40:26 CET 2021] Getting certificates in Synology DSM
[Wed Feb 3 08:40:27 CET 2021] Generate form POST request
[Wed Feb 3 08:40:27 CET 2021] Upload certificate to the Synology DSM
[Wed Feb 3 08:41:01 CET 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 16
[Wed Feb 3 08:41:01 CET 2021] http services were restarted
[Wed Feb 3 08:41:01 CET 2021] Success

Vous pouvez ensuite vérifier que votre nouveau certificat est visible sur l’interface de votre NAS Synology dans « Panneau de configuration / Sécurité / Certificat».

Configurer le renouvellement du certificat

Maintenant que le certificat Wildcard est créé, il nous faut programmer son renouvellement automatique.

En prérequis, vous devez installer le package «Python module» ou «Python 3» au choix. Pour cela vous installer un des 2 paquets qui se trouvent dans la partie «Tierce partie» dans le «Centre de paquets» de DSM:

Vous devez placer le script dans le répertoire «Certificats» que nous avons créé plus tôt.

Pour configurer la tâche de renouvellement, nous allons créer la tâche dans le planificateur de tâches de DSM. Pour cela, dans «Panneau de configuration / Planificateur de tâches», cliquer sur le bouton «Créer» et sélectionner dans le popup: «Tâche planifiée / Script défini par l’utilisateur».

Dans la fenêtre «Créer une tâche», puis dans l’onglet «Général» nommez la tâche à exécuter périodiquement. Par exemple : «Renouvellement Certificats». L’utilisateur doit être «root» et la case «Activé» doit être cochée.

Dans l’onglet «Programmer», vous pouvez le configurer comme sur l’écran ci-dessous. Rien ne vous oblige à garder le même jour ou la même heure.

Enfin, dans l’onglet «Paramètres de la tâche», vous choisissez si vous voulez recevoir ou non un email suite à l’exécution du script ou au contraire suite à sa mauvaise exécution.

L’exécution du script va créer un fichier log qui se nomme «acme_renew_python.log» dans le répertoire «/volume1/Certificats/Acme_renew/».

Voici un exemple de log que j’ai eu de mon côté suite aux premiers lancements:

02/03/2021 12:32:20 PM INFO:>> Lancement du script acme_renew.py
02/03/2021 12:32:20 PM INFO:>> Si option -h ou -v, alors pas d'autre log
02/03/2021 12:32:20 PM INFO:
02/03/2021 12:32:20 PM INFO:>> acme_renew release : Version 1.44 Released -- 21-aout-2020
02/03/2021 12:32:20 PM INFO:>> version python sys : Python 3.8.2
02/03/2021 12:32:20 PM INFO: SYNOCERT : /usr/syno/etc/certificate
02/03/2021 12:32:20 PM INFO: LOCALCERT : /usr/local/etc/certificate
02/03/2021 12:32:20 PM INFO: ACMECERTS : /volume1/documents/Sauvegardes/Certificats
02/03/2021 12:32:20 PM INFO: ndd.tld : laescuela.fr
02/03/2021 12:32:20 PM INFO: certtype : RSA
02/03/2021 12:32:20 PM INFO: scriptdir : /volume1/documents/Sauvegardes/Certificats/Acme_renew
02/03/2021 12:32:20 PM INFO: log [-l] : True
02/03/2021 12:32:20 PM INFO: clean [-c] : False
02/03/2021 12:32:20 PM INFO: force [-f] : False
02/03/2021 12:32:20 PM INFO: test [-t] : False
02/03/2021 12:32:20 PM INFO:-- Lecture du fichier /usr/syno/etc/certificate/_archive/DEFAULT
02/03/2021 12:32:20 PM INFO:-- Ancien certificat par DEFAULT, a renouveler : nCjEKE
02/03/2021 12:32:20 PM INFO:-- Lecture du fichier /usr/syno/etc/certificate/_archive/INFO
02/03/2021 12:32:20 PM INFO:-- Date de renouvellement autorisee (T0+60 jours par defaut) : Sun Apr 4 07:34:38 UTC 2021
02/03/2021 12:32:20 PM WARNING:-- La date de renouvellement du certificat ( Sun Apr 4 07:34:38 UTC 2021 ) n'est pas atteinte
02/03/2021 12:32:20 PM WARNING:-- Fin de procedure

Article précédent Article suivant

Vous pourriez aussi aimer

18 commentaires

  • Répondre Fabrice S. 10 juin 2024 à 17 h 51 min

    Bonjour,
    j’ai suivi à la lettre le tuto mais je bloque sur l’erreur suivante, je ne comprends pas, le user existe et a les droits admin :

    ash-4.4# ./acme.sh –deploy -d « $CERT_DOMAIN » –deploy-hook synology_dsm
    [Mon Jun 10 05:38:13 PM CEST 2024] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 35
    [Mon Jun 10 05:38:13 PM CEST 2024] Logging into localhost:5000…
    [Mon Jun 10 05:38:13 PM CEST 2024] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 35
    [Mon Jun 10 05:38:13 PM CEST 2024] Unable to authenticate to https://localhost:5000, you may report the full log to the community.
    [Mon Jun 10 05:38:13 PM CEST 2024] Error deploy for domain:maisonsavary.ovh
    [Mon Jun 10 05:38:13 PM CEST 2024] Deploy error.

  • Répondre Minos 5 juillet 2022 à 22 h 32 min

    Hello,

    J ‘ai ce type de message lors du renouvellement avec ma tache planifiée : un chemin de dossier pas trouvé : _archive/DEFAULT

    — acme_renew release : Version 1.44 Released — 21-aout-2020
    — version Python system : Python 3.8.6
    — SYNOCERT : /volume1/Certificats/xxxx.ovh
    — LOCALCERT : /usr/local/etc/certificate
    — ACMECERTS : /volume1/Certificats
    — xxxx.ovh : xxxx.ovh
    — certtype : RSA
    — scriptdir : /volume1/Certificats/Acme_renew
    — log [-l] : True
    — clean [-c] : False
    — force [-f] : False
    — test [-t] : False
    Traceback (most recent call last):
    File « /volume1/Certificats/acme_renew.py », line 381, in
    f = open(SYNOCERT + ‘/_archive/DEFAULT’, « r »)
    FileNotFoundError: [Errno 2] No such file or directory: ‘/volume1/Certificats/xxxx.ovh/_archive/DEFAULT’

    Merci par avance, pour vos lumières ..

    Minos

    • Répondre Minos 5 juillet 2022 à 22 h 52 min

      C ‘est bon en corrigeant ça : — SYNOCERT : /usr/syno/etc/certificate

      ca passe mieux .. a voir le jour du renouvellement …

      — Date de renouvellement autorisee (T0+60 jours par defaut) : Sat Aug 6 21:09:34 UTC 2022
      — La date de renouvellement du certificat ( Sat Aug 6 21:09:34 UTC 2022 ) n’est pas atteinte
      — Inutile de renouveler le certificat -> fin du script

      Wait and see 🙂

  • Répondre Minos 7 juin 2022 à 23 h 33 min

    Salut ,
    Premièrement bravo pour ton travail !

    La création du certificat est OK !!

    Par contre pour le renouvellement , je rencontre des difficultés de renouvellement .

    voici le log :

    06/07/2022 11:19:23 PM INFO:>> Lancement du script acme_renew.py
    06/07/2022 11:19:23 PM INFO:>> Si option -h ou -v, alors pas d’autre log
    06/07/2022 11:19:23 PM INFO:
    06/07/2022 11:19:23 PM INFO:>> acme_renew release : Version 1.44 Released — 21-aout-2020
    06/07/2022 11:19:23 PM INFO:>> version python sys : Python 3.8.6
    06/07/2022 11:19:23 PM INFO: SYNOCERT : /volume1/Certificats/XX.ovh
    06/07/2022 11:19:23 PM INFO: LOCALCERT : /usr/local/etc/certificate
    06/07/2022 11:19:23 PM INFO: ACMECERTS : /volume1/Certificats
    06/07/2022 11:19:23 PM INFO: XX.ovh : XX.ovh
    06/07/2022 11:19:23 PM INFO: certtype : RSA
    06/07/2022 11:19:23 PM INFO: scriptdir : /volume1/Certificats/Acme_renew
    06/07/2022 11:19:23 PM INFO: log [-l] : True
    06/07/2022 11:19:23 PM INFO: clean [-c] : False
    06/07/2022 11:19:23 PM INFO: force [-f] : False
    06/07/2022 11:19:23 PM INFO: test [-t] : False
    06/07/2022 11:19:23 PM INFO:– Lecture du fichier /volume1/Certificats/XX.ovh/_archive/DEFAULT

    Le retour de log par mail:

    Heure de début : Tue, 07 Jun 2022 23:19:22 GMT Heure d’arrêt : Tue, 07 Jun 2022 23:19:23 GMT État actuel : 1 (Interrompu) Sortie standard/erreur :

    — acme_renew release : Version 1.44 Released — 21-aout-2020
    — version Python system : Python 3.8.6
    — SYNOCERT : /volume1/Certificats/XX.ovh
    — LOCALCERT : /usr/local/etc/certificate
    — ACMECERTS : /volume1/Certificats
    — minos.ovh : XX.ovh
    — certtype : RSA
    — scriptdir : /volume1/Certificats/Acme_renew
    — log [-l] : True
    — clean [-c] : False
    — force [-f] : False
    — test [-t] : False
    Traceback (most recent call last):
    File « /volume1/Certificats/acme_renew.py », line 381, in
    f = open(SYNOCERT + ‘/_archive/DEFAULT’, « r »)
    FileNotFoundError: [Errno 2] No such file or directory: ‘/volume1/Certificats/XX.ovh/_archive/DEFAULT’

    Le script se lance bien , mais l’erreur concerne a priori le _archive/DEFAULT qui n ‘est pas trouvé car inexistant … dans mon mon chemin /volume1/Certificats/XX.ovh/ ?

    as tu une idée pourquoi _archive/DEFAULT est introuvable ??

    merci par avance

  • Répondre Dom77 30 avril 2022 à 14 h 08 min

    Bonjour
    Sympa ce tuto, qui s’il arrive au bout m’épargnera bien des actions ….
    Mais je bute sur un os:lors du déploiement du certificat, impossible de faire logguer dans le script acme.sh, alors que les informations sont correctes (j’ai meme recréé un compte admin exprés.. au cas ou)
    voici le résultat:
    root@syno:/usr/local/share/acme.sh# ./acme.sh –deploy -d « $CERT_DOMAIN » –deploy-hook synology_dsm
    [Sat Apr 30 14:03:43 CEST 2022] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 60
    [Sat Apr 30 14:03:43 CEST 2022] Logging into localhost:5170
    [Sat Apr 30 14:03:43 CEST 2022] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 60
    [Sat Apr 30 14:03:43 CEST 2022] Unable to authenticate to localhost:5170 using https.
    [Sat Apr 30 14:03:43 CEST 2022] Check your username and password.
    [Sat Apr 30 14:03:43 CEST 2022] If two-factor authentication is enabled for the user, set SYNO_TOTP_SECRET.
    [Sat Apr 30 14:03:43 CEST 2022] Error deploy for domain:mondomaineamoi.fr
    [Sat Apr 30 14:03:43 CEST 2022] Deploy error.

    J’ai checké: pas de double autenthification, le port de connection est bon, le login et mot de passe aussi… je cale.

    • Répondre aldo 1 janvier 2023 à 18 h 36 min

      salut dom jai le meme probleme que toi, as tu réussi à trouver une solution?

    • Répondre Spiga0u 9 janvier 2024 à 11 h 55 min

      Salut, j’ai eu de message et je pense que c’est parce que l’utilisateur choisi n’a pas assez de droit sur ta config DSM. Dans le doute, octroie lui tout les droits et réessaie (si tu as un 2FA, je te conseille de te créer un nouveau compte admin que pour ça et sans 2FA, au moins pour tester).
      En espérant que ça te débloque toi aussi, ou tout autre bloqué invisible ! 🙂

  • Répondre Furter Thomas 15 février 2022 à 18 h 29 min

    Bopnjour je suis débutant avec mon synology et l’installation du wild card m’interesse beaucoup, mais pour ma part j’utilise le Synology DNS package. Est-il possibe de créer des clés avec ce pakage ? je ne sais pas comment faire.
    Meric pour votre aide

  • Répondre samheg 13 janvier 2022 à 0 h 21 min

    Bonjour,

    tuto très intéressant et très bien rédigé. Bravo !
    Une petite précision : dans sa version actuelle (3.0.2) le script acme.sh utilise zerossl comme CA par défaut.
    Cela amène donc l’erreur suivante :

    Using CA: https://acme.zerossl.com/v2/DV90
    Create account key ok.
    No EAB credentials found for ZeroSSL, let’s get one
    acme.sh is using ZeroSSL as default CA now.
    Please update your account with an email address first.
    acme.sh –register-account -m my@example.com
    See: https://github.com/acmesh-official/acme.sh/wiki/ZeroSSL.com-CA
    Please add ‘–debug’ or ‘–log’ to check more details.
    See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh

    Pour letsencrypt, il suffit de rajouter en paramètre « –server letsencrypt », comme ceci :

    ./acme.sh –issue –keylength 4096 -d « $CERT_DOMAIN » -d « $CERT_WDOMAIN » –dns « $CERT_DNS » –server letsencrypt

  • Répondre krymi 28 décembre 2021 à 16 h 14 min

    Salut,
    Fonctionne au top, seulement pour le renouvellement automatique ca ne fonctionne pas.
    J’obtiens l’erreur  » permission denied »

  • Répondre hot22sht 13 octobre 2021 à 18 h 44 min

    Trés bon guide félicitations !
    J’ai aussi eu le problème avec le champ TXT chez OVH, c’était au moment de la génération des clés que je me suis trompé : j’ai oublié les « /* » après mon nom de domaine.
    Si non la méthode de déploiement automatique ne semble pas fonctionner avec DSM 7.
    Il faut alors le faire à la main.

  • Répondre Stan 21 mai 2021 à 12 h 07 min

    Salut,

    Merci Jérôme pour le tuto, c’est top et bien expliqué.
    J’ai juste un souci avec la création du certificat (je suis chez OVH aussi) car l’entrée TXT n’est pas créée:

    [Fri May 21 11:29:51 CEST 2021] Add txt record error.
    [Fri May 21 11:29:51 CEST 2021] Error add txt for domain:_acme-challenge.mondomaine.com

    Je suis allé voir sur https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh
    J’ai fait un curl sur mon domaine comme indiqué et voilà le résultat:

    HTTP/1.1 301 Moved Permanently
    Server: no-head
    Date: Fri, 21 May 2021 09:41:07 GMT
    Content-Type: text/html
    Content-Length: 162
    Connection: keep-alive
    Keep-Alive: timeout=20
    Location: https://mondomaine.com/
    Strict-Transport-Security: max-age=15768000

    HTTP/2 403
    server: no-head
    date: Fri, 21 May 2021 09:41:07 GMT
    content-type: text/html
    content-length: 3322
    last-modified: Wed, 17 Mar 2021 11:02:44 GMT
    etag: « cfa-5bdb96c1d1d00 »
    accept-ranges: bytes

    Question, comment le domaine doit être configuré? (J’utilisais le domaine principal pour mon site perso et des sous-domaines pour le nas, mais là j’ai redirigé le domaine vers mon nas directement).

    Merci
    Stan

    • Répondre MICHAEL FERON 1 août 2021 à 14 h 22 min

      Hello
      J’ai la même erreur :/

      • Répondre Jérôme 2 septembre 2021 à 9 h 35 min

        Bonjour Michael,

        As-tu bien exporté les clés pour l’API OVH ?

        Jérôme

      • Répondre Darkneo 18 janvier 2022 à 22 h 33 min

        Yo, je me permets une petite réponse, car j’ai eu la même erreur. En fat, dans la fenêtre d’API OVH, il faut rajouter les « * » a la fin de certaines lignes, et ca passe crème!
        Bon courage (depuis le temps 😉 )

    • Répondre Jérôme 2 septembre 2021 à 9 h 34 min

      Bonjour Stan,
      Désolé pour le retard dans le traitement des commentaires, j’étais très occupé ces derniers temps.
      Je pense qu’il doit y avoir un problème dans tes accès à l’API OVH, as-tu bien exporté les clés avec les bons droits :
      GET = /domain/zone/votre-domaine.fr
      GET = /domain/zone/votre-domaine.fr/*
      POST = /domain/zone/votre-domaine.fr/*
      PUT = /domain/zone/votre-domaine.fr/*
      DELETE = /domain/zone/votre-domaine.fr/record/*

      C’est le cas chez moi, j’utilise des sous-domaine pour chacun des éléments de mon installation, par exemple, nas.votre-domaine.fr.
      Donc ça, ce n’est pas un problème et justement c’est tout l’intérêt de générer un certificat de sécurité Wildcard.

      Tiens-moi au courant.

      À bientôt.

      Jérôme

  • Répondre Jakko 4 mai 2021 à 14 h 00 min

    Merci.
    Très bon tuto facile à suivre et bien expliqué.
    Il manque juste une partie sur ce qu’il faut mettre dans le script en python dans le paragraphe « Configurer le renouvellement du certificat ».

  • Laisser un commentaire

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.