oracle7 Posté(e) le 10 août 2020 Auteur Posté(e) le 10 août 2020 @Audio Cela se confirme, tu as omis la variable CERT_HOME lors le la procédure. Tu n'as pas répondu : que contient le répertoire "/root/.acme.sh/" ? Il serait peut-être plus sage de reprendre à zéro la création de ton certificat lors que son échéance sera atteinte (avec le mode annule et remplace). Cette fois en pointant bien chaque opération pour ne pas en "oublier" ... Cordialement oracle7😉 0 Citer
Audio Posté(e) le 10 août 2020 Posté(e) le 10 août 2020 il y a 8 minutes, oracle7 a dit : Cela se confirme, tu as omis la variable CERT_HOME lors le la procédure. Tu n'as pas répondu : que contient le répertoire "/root/.acme.sh/" ? C'est encore pire que ce que je pensais, je n'ai pas trouvé de répertoire /volume1/.acme.sh. J'ai bien un répertoire acme.sh-master mais c'est je pense que c'est simplement l'installation du script acme. Je vais suivre ton conseil @Oracle7 en menant une nouvelle procédure en mode annule et remplace. J'ai bien sauvegardé les clefs API OVH ce sera déjà ça de fait. Encore merci @bruno78 et @oracle7 Cordialement 0 Citer
PPJP Posté(e) le 10 août 2020 Posté(e) le 10 août 2020 Bonjour, Très beau travail de @oracle7 et @bruno78 Mais je vais me permettre de donner mon humble avis, sans intention blesser qui que ce soit. Je trouve ce tuto trop compliqué, ce qui entraine des anomalies comme celle rencontré par @Audio (certainement variable CERT_HOME non définie lors de la création initiale du certificat) . Pourquoi ne pas avoir procédé ainsi: Installation acme: Création du dossier acme Après s'y être positionné, installation par un simple wget (ou curl) On laisse tous les paramétrages par défaut Création initiale d'un certificat: On ne renseigne les variables d'environnement que pour les clé API On lance uniquement la commande de création du certificat (pas d'utilisation de deploy) On crée le certificat depuis DSM avec les nouveaux fichiers obtenus de ACME. On configure les services pour ce certificat. Renouvellement: Le script après les test initiaux se contente de Lancer la même commande que lors de la création Copier ( et renommer ) les nouveaux fichiers obtenus de ACME dans les packages et services concernés Relancer les packages et services concernés Enfin je trouve dommage que le script de renouvellement soit en python 2.7. Python 2 est obsolète et n'est plus maintenu. Si un jour DSM7 sort, il est très probable que seul python 3 y subsistera, rendant ce script inutilisable. 0 Citer
oracle7 Posté(e) le 10 août 2020 Auteur Posté(e) le 10 août 2020 (modifié) @PPJP Bonjour, Merci pour ton appréciation. Je vais essayer de répondre point par point à ta méthodologie. il y a une heure, PPJP a dit : Je trouve ce tuto trop compliqué C'est un point de vue certes, c'est aussi pour cela que j'ai souhaité le détailler au maximum en apportant le plus d'explications possibles pour clarifier les manipulations afin que les utilisateurs comprennent bien ce qu'ils faisaient. Je suis d'accord, on trouve plus simple sur la toile, mais ces TUTO ne donnent pas entière satisfaction quand au résultat attendu et sa fiabilité. l'automatisation à un prix (au moment de l'installation) mais ensuite on n'en entendant plus parler ... Par ailleurs, même en voulant faire "simple" avec unPixel vous aviez, en son temps, rencontré un certain nombre de difficultés, non ? il y a une heure, PPJP a dit : Après s'y être positionné, installation par un simple wget (ou curl) C'est ce que j'ai essayé initialement mais cela ne marchait pas, le wget ne permet que de récupérer le fichier tar du script (confirmé par diverses sources sur Github) et a priori ne permet pas de lancer directement l'installation. Où alors j'ai raté un truc ? il y a une heure, PPJP a dit : On laisse tous les paramétrages par défaut Surtout pas car sinon le certificat est généré dans le répertoire "/root/.acme.sh" et sachant que le répertoire "root" n'est pas stable dans le temps, il est effacé en cas de mise à jour de DSM et on perd les fichiers du certificat. D'où l'usage de la variable CERT_HOME. idem pour la partie exécutable de acme.sh qui serait perdue aussi, ce qui serait encore plus dommageable pour assurer le renouvellement. D'où là encore d'usage de la variable ACME_HOME. De plus, par défaut c'est la méthode HTTP_01 qui est utilisée et qui elle, nécessite d'ouvrir les ports 80 et 443 sur le NAS (le problème principal est le port 80 du point de vue sécurité). D'où l'usage de la variable CERT_DNS = "dns_xxx" qui elle utilise la méthose DNS_01 et qui n'a pas besoin d'ouvrir un quelconque port et est bien plus sécuritaire. il y a une heure, PPJP a dit : On lance uniquement la commande de création du certificat (pas d'utilisation de deploy) Tout l'intérêt du "deploy" est d'assurer la correcte mise à jour de l'environnement propre au NAS Synology. Je n'ai fait que reprendre en cela les préconisations des experts acme sur Github. En plus, on s'affranchit en l'automatisant, des problèmes liés à une double authentification qui serait en place. Pour mémoire, acme.sh est pour moi, assez "générique" quelque part et le "deploy" est là justement pour prendre en compte les spécificité du NAS Synology". Regardes le script "synology_dsm.sh" dans "/usr/local/share/acme.sh/deploy" pour t'en rendre compte si besoin en est. il y a une heure, PPJP a dit : Le script après les test initiaux se contente de Lancer la même commande que lors de la création Comme tu le ferais à la main, mais là en plus, il n'y a pas besoin de getter la date de renouvellement pour ouvrir les ports 80 et 443. Tout est automatique, on n'ouvre aucun port, ce qui est parfait du point de vue sécurité. La recopie des fichiers du certificat est de plus COMPLÈTE grâce au script Python, ce que ne fait pas justement la seule commande de renouvellement de acme.sh comme tu le sais très bien. il y a une heure, PPJP a dit : Enfin je trouve dommage que le script de renouvellement soit en python 2.7. Python 2 est obsolète et n'est plus maintenu. Certes, mais pour l'heure on aura utilisé les ressources minimales disponibles sur le NAS. @bruno78 seul peut le dire si une évolution à court terme du script vers Python 3 est envisageable. Pourquoi pas, a priori et sauf erreur de ma part, il marche déjà avec Python 3, donc il n'y aurait aucun problème mais je peux me tromper. Saches aussi, qu'à la base on ne souhaitait pas complexifier plus avant la procédure en faisant installer le package Python 3 (même si c'est simple au demeurant). Maintenant, en attendant que le serpent de mer qu'est DSM7 ne refasse surface pour de bon, cette procédure, dans l'état, répond au besoin. Il sera toujours temps d'évoluer alors, d'autant plus que cette version DSM7 pourrait bien aussi bousculer bien d'autres choses et notamment pourquoi pas, la façon dont sont gérés aujourd'hui les certificats. Donc wait and see... Maintenant si tu as d'autres suggestions d'améliorations, avec @bruno78 nous sommes preneurs dans juste mesure de nos capacités respectives. Cela doit pouvoir venir en complément des fonctions accessibles via le mode "manuel" du script. Si cela doit toucher la partie automatique, il faudra alors être très convainquant pour ne pas complexifier encore plus ... Cordialement oracle7😉 Modifié le 10 août 2020 par oracle7 0 Citer
Pinpon_112 Posté(e) le 10 août 2020 Posté(e) le 10 août 2020 @oracle7 Le 30/05/2020 à 10:35, oracle7 a dit : 5.1 Cas de la double authentification Question, j'ai une double authentification mais pour certaines raisons (support technique Synology) j'ai du la supprimer. Lorsque je vais la remettre en place, est-ce que le DID sera toujours le même ? Si oui, pas de problème, sinon que dois-je et comment le faire ? Merci pour ton aide. 0 Citer
Audio Posté(e) le 10 août 2020 Posté(e) le 10 août 2020 Je comprends le débat et je me sens un peu fautif de l'avoir provoqué car j'ai bien du faire une bourde (oubli de la variable CERT_HOME) lors de la génération initiale du certificat. Même si ça parait compliqué je suis content de ne plus: - Me prendre la tête avec la demande de renouvellement de certificat LE tous les 3 mois à partir de DSM avec les manips afférentes, - Devoir payer tous les ans un certificat SSL à G...car c'est ce que j'avais fini par faire. errare humanum est, perseverare diabolicum ! Je n'aime pas rester sur une bourde et savoir qu'à terme mon NAS et pourra pas renouveler seul son certificat. Donc j'ai tout repris, comme conseillé par @oracle7 . Maintenant j'ai bien les différents répertoires en place et le script Python me donne en sortie: Tâche : RenewCertif_W_LE Heure de début : Mon, 10 Aug 2020 16:14:12 GMT Heure d’arrêt : Mon, 10 Aug 2020 16:14:12 GMT État actuel : 1 (Interrompu) Sortie standard/erreur : -- SYNOCERT : /usr/syno/etc/certificate -- LOCALCERT : /usr/local/etc/certificate -- ACMECERTS : /volume1/Certs -- ndd.tld : xxxxxxx.fr -- certtype : RSA -- scriptdir : /volume1/Certs/Acme_renew -- log : True -- test : False -- clean : False -- Ancien certificat par DEFAULT, a renouveller : IGkOxz -- Fichier de configuration du ndd.tld : /volume1/Certs/xxxxxxx.fr/xxxxxxx.fr.conf -- Date de renouvellement autorisee (T0+60 jours par defaut) : Fri Oct 9 13:39:49 UTC 2020 --- La date de renouvellement du certificat ( Fri Oct 9 13:39:49 UTC 2020 ) n'est pas atteinte --- Inutile de renouveller le certificat -> fin du script Donc pas de souci pour @bruno78 le script fonctionne! Le détail apporté au Tuto aide à reprendre les opérations quand on s'est trompé, surtout quand on est novice et qu'il y a des notions qu'on ne soupçonne même pas quand on suit pas à pas un tuto. J'ai encore beaucoup de choses à apprendre et j'ai donc besoin de beaucoup de Tuto... Cordialement Audio 0 Citer
oracle7 Posté(e) le 10 août 2020 Auteur Posté(e) le 10 août 2020 @Pinpon_112 Bonjour, il y a 48 minutes, Pinpon_112 a dit : Lorsque je vais la remettre en place, est-ce que le DID sera toujours le même ? Si oui, pas de problème, sinon que dois-je et comment le faire ? NON, je pense qu'il sera différent mais je n'en suis pas sûr. Aussi, dans le doute on fait comme s'il était différent. Tu vas alors dans le fichier "/volume1/Certs/ndd.tld/ndd.tld.conf". Tu l'édites et là soit tu ajoutes une ligne (si elle n'existe pas) soit tu modifies la ligne : Citation SAVED_SYNO_DID='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' Avec xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx = le nouveau DID. Attention ce sont des simples cotes " ' " et PAS des guillemets " " " qui entourent la valeur du DID. Cordialement oracle7😉 @Audio Bravo, je vois que tu as réussis cette fois 😀😀😀. Tu sais on fait tous des erreurs, c'est notre nature d'humain qui veut cela. Le principal est d'apprendre de ces erreurs pour ne plus les refaire ... Voilà pour le 1/4 d'heure philo ... 😜 Cordialement oracle7😉 0 Citer
bruno78 Posté(e) le 10 août 2020 Posté(e) le 10 août 2020 Bonjour, @oracle7, @Audio, @Pinpon_112, @PPJP je viens rajouter mon grain de sel 😃 pour la partie script Python : c'était un "nice to have" à la suite du Tuto d' @oracle7, afin d'avoir une automatisation complète. Mais on est bien d'accord, renouveler son certificat et ré-affecter les services à la main, 1 fois tout les 3 mois, ce n'est pas la mer à boire (et ça permet de revérifier périodiquement ses paramètres, et les mettre à jour si nécessaire) au delà du "nice to have", c'était un petit défi pour moi, en tant qu'amateur ...., et cela m'a permis / obligé à rentrer un peu plus en profondeur dans le Syno, ce qui est toujours intéressant. Au tout début, il y a eu débat Python 2.7 vs 3.x. J'avais commencé en 3.x, mais au final on s'est dit qu'il valait mieux le faire sans paquet supplémentaire à installer, et donc utiliser le Python 2.7 embarqué de base du Syno La conséquence, évidemment, @PPJP a raison, c'est l'obsolescence de cette version. Ceci dit, les fonctions utilisées sont basiques, donc au pire a priori on risque une évolution de syntaxe en passant en Python3. Donc soit je travaille dessus en dés à présent en Python3, soit on attend la sortie du DSM7 ..... et à mon avis ce ne sera pas le passage python2 vers python3 le plus grand défi ! Par ailleurs, je suis en train de faire une évolution du script actuel, pour y intégrer un log au niveau python lui-même (pas uniquement le log du script acme.sh). Cdt Bruno78 0 Citer
PPJP Posté(e) le 10 août 2020 Posté(e) le 10 août 2020 @oracle7 Je vais également essayer de répondre point à vos remarques Tout d'abord, je tiens à que je n'utilise pas acme et que je ne l'ai que rapidement consulté lorsque je suis intervenu sur le tuto de unPixel. Le seul problème à l'époque était le non redémarrage de quelques paquets, car je n'avais pas pris le temps de creuser aussi profondément que ne l'a fait @bruno78 (bravo) sur les dépendances. Il y a 2 heures, oracle7 a dit : Maintenant si tu as d'autres suggestions d'améliorations, avec @bruno78 nous sommes preneurs dans juste mesure de nos capacités respectives. Cela doit pouvoir venir en complément des fonctions accessibles via le mode "manuel" du script. Si cela doit toucher la partie automatique, il faudra alors être très convainquant pour ne pas complexifier encore plus ... Le but de mes suggestions était simplement de simplifier d'une part les opérations pour les utilisateurs du tuto et d'autre part de simplifier drastiquement le script de renouvellement. J'ai bien compris le message et n'interviendrai plus sur ce fil. Réponses valables si pas de changements de ACME depuis mon intervention sur le tuto de unPixel. Il y a 2 heures, oracle7 a dit : C'est ce que j'ai essayé initialement mais cela ne marchait pas, le wget ne permet que de récupérer le fichier tar du script Non, , étant positionné dans /usr/local/share/acme.sh un wget installe directement tous les fichiers nécessaires dans ce dossier Il y a 2 heures, oracle7 a dit : Surtout pas car sinon le certificat est généré dans le répertoire "/root/.acme.sh" Non mais dans /usr/local/share/acme.sh Il y a 2 heures, oracle7 a dit : De plus, par défaut c'est la méthode HTTP_01 qui est utilisée et qui elle, nécessite d'ouvrir les ports 80 et 443 sur le NAS Cette info est transmise par l'option --dns xxx de la commande de création du certificat Il y a 2 heures, oracle7 a dit : mais là en plus, il n'y a pas besoin de getter la date de renouvellement pour ouvrir les ports 80 et 443 Le script de renouvellement peut parfaitement vérifier l"ancienneté du certificat et décider s'il faut lancer le renouvellement (il le fait) La commande de renouvellement utilisant l’option --dns ne nécessite pas l'ouverture de ports Enfin concernant le script Il est obligé d''aller récupérer toutes les personnalisations faites lors de la création initiale! Quel est l’intérêt de conserver l'ancien certificat (durée de vie limitée) et d'en créer un nouveau ? Ce qui entraine de mémoriser les data de l'ancien fichier INFO pour de les transférer dans le nouveau. Le transfert des fichiers créés par ACME et renommés, ainsi que le redémarrage des packagses et services tels que réalisés par le script actuel seraient suffisants. La liste des certificats dans DSM va grossir ! @bruno78 il y a une heure, bruno78 a dit : Mais on est bien d'accord, renouveler son certificat et ré-affecter les services à la main, 1 fois tout les 3 mois, ce n'est pas la mer à boire Il n'en était question que lors de la création initiale du certificat le script actuel s'en chargeant lors du renouvellement. Fin de mon intervention sur ce fil. Cordialement 0 Citer
bruno78 Posté(e) le 10 août 2020 Posté(e) le 10 août 2020 @PPJP je reste preneur de toute contribution, c'est la finalité première du forum. Cdt Bruno78 0 Citer
oracle7 Posté(e) le 10 août 2020 Auteur Posté(e) le 10 août 2020 @PPJP il y a 8 minutes, PPJP a dit : J'ai bien compris le message et n'interviendrai plus sur ce fil. Il n'y a aucune raison de prendre ainsi la mouche. Bien au contraire, tes avis sont appréciés et utiles à la communauté. Je trouve seulement dommage de prendre cette position ... En espérant, pouvoir poursuivre ces échanges à toi. Cordialement oracle7😉 0 Citer
Pinpon_112 Posté(e) le 12 août 2020 Posté(e) le 12 août 2020 @oracle7 Bonjour, Le 10/08/2020 à 17:24, oracle7 a dit : NON, je pense qu'il sera différent mais je n'en suis pas sûr. Aussi, dans le doute on fait comme s'il était différent. Tu vas alors dans le fichier "/volume1/Certs/ndd.tld/ndd.tld.conf". Tu l'édites et là soit tu ajoutes une ligne (si elle n'existe pas) soit tu modifies la ligne : Citation SAVED_SYNO_DID='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' Avec xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx = le nouveau DID. Attention ce sont des simples cotes " ' " et PAS des guillemets " " " qui entourent la valeur du DID. Je confirme, le DID est bien différent. J'ai donc fait ce que tu as dit ci-dessus. Un grand merci pour ton aide. Peut-être que tu peux mettre un adendum dans le tuto pour expliquer la chose ? Bien à toi, 0 Citer
Franck Binouse Posté(e) le 15 août 2020 Posté(e) le 15 août 2020 Super boulot, merci pour le partage. Je n'ai pas encore installé le renouvellement auto mais tout le reste fonctionne impeccable. 0 Citer
PiwiLAbruti Posté(e) le 20 août 2020 Posté(e) le 20 août 2020 Petite précision pour ceux (une extrême minorité) qui hébergeraient leur propre serveur DNS sur leur NAS sans l'ouvrir au monde entier Les serveurs Let's Encrypt ont besoin de récupérer le(s) enregistrement(s) TXT pour générer les certificats. Il faut donc penser à les autoriser dans le pare-feu à accéder à votre serveur DNS : 66.133.109.36 (outbound1.letsencrypt.org) 64.78.149.164 (outbound2.letsencrypt.org) Pour la petite histoire, mon domaine domaint.tld est hébergé chez mon registrar et j'utilise des domaines pour chacun de mes NAS (nas1.domain.tld, nas2.domaint.tld, ...). Ces domaines sont hébergés respectivement sur chaque NAS et ne sont pas diffusés au monde entier mais uniquement dans les réseaux que j'utilise. Il m'a donc fallu autoriser les serveur de Let's Encrypt à accéder à ces serveurs DNS pour générer les certificats wildcard de chaque NAS (nas1.domain.tld et *.nas1.domain.tld, nas2.domain.tld et *.nas2.domain.tld, ...). Ayant validé la chose avec une capture tcpdump, j'ai pu aussi voir que Let's Encrypt utilise toute une ribambelle de serveurs chez Amazon qui requêtent également le serveur DNS. Ils sont parfaitement facultatifs puisque les certificats sont correctement générés avec les deux seuls serveurs historiques du service. 0 Citer
oracle7 Posté(e) le 21 août 2020 Auteur Posté(e) le 21 août 2020 (modifié) @PiwiLAbruti Bonjour, Juste pour m'assurer que j'ai bien compris ton propos, en clair ta précision concerne uniquement ceux qui ont installé aussi une zone public pour leur serveur DNS sur leur NAS . C'est bien cela ? Car dans le cas de la méthode de génération proposée ici, cet échange entre avec les serveurs LetsEncrypt semble "transparent" pour l'utilisateur. Je présume (sous réserve de me tromper) qu'il se passe directement entre les serveurs d'OVH (du registar si autre) et ceux de LetsEncrypt. Pour ma part, je n'ai jamais eu besoin d'autoriser ces @IP dans le pare-feu. Vu du Log (voir l'ex de log dans le TUTO), on ne fait qu'écrire dans la zone DNS du domaine.tld chez OVH les fameux enregistrements TXT nécessaires à la vérification et ceux-ci en sont ensuite supprimés à l'issue. Au passage, à ma connaissance @Jeff777 fait parti de la minorité dont tu parles et je pense qu'il serait intéressé de ton retour d'expérience afin de savoir comment tu procèdes pour générer le certificat LetsEncrypt dans ce cas précis. Cordialemement oracle7😉 Modifié le 21 août 2020 par oracle7 0 Citer
PiwiLAbruti Posté(e) le 21 août 2020 Posté(e) le 21 août 2020 @oracle7 Oui, ma remarque ne concerne qu'une poignée d'utilisateurs qui ont déclaré une ou plusieurs zones DNS publiques dans DNS Server sur leur NAS. Les serveurs Let's Encrypt vont alors communiquer directement avec le serveur DNS (paquet DNS Server) du NAS pour établir les certificats. 0 Citer
oracle7 Posté(e) le 21 août 2020 Auteur Posté(e) le 21 août 2020 @PiwiLAbruti Bonjour, Merci de ta réponse. Comme cela c'est clair. Cordialement oracle7😉 0 Citer
Ooook Posté(e) le 28 août 2020 Posté(e) le 28 août 2020 (modifié) Hello à tous, J'ai un vieux DS1010+, donc bloqué en DSM 5. J'avais mis en place acme et let's encrypt grâce à ce tuto https://www.naschenweng.info/2017/01/06/automatic-ssl-renewal-encrypt-dsm-5-x-synology-ds1010-dns-01-verification/ qui a bien fonctionné jusqu'à cet été. De mémoire, j'ai juste ajouté le wildcard en début d'année et c'est tout ce que j'ai changé. RàS lors du renouvellement auto de Mai. En revanche le renouvellement de cet été n'est pas du tout passé, bloqué sur cette erreur : Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 60 Error add txt for domain:_acme-challenge.mondomaine.fr Au final, mon certificat a expiré et je n'accède plus au NAS. 😔 Bref, voyant ici ce tuto tout nouveau tout beau, je me suis dit que j'allais le suivre et qu'il y avait peut-être des changements côté acme ou autre qui m'avaient échappé (je précise que je ne comprend pas la moitié de ce qui est dit dans ce tuto, je vois bien le sens général, mais c'est tout). Et du coup, je suis là encore bloqué au moment de la création du certificat, avec la même erreur : Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 60 Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 60 error The consumer key is invalid: xxxxxxxxxxxxxxxxxxxxxxxxx Please retry to create a new one. Error add txt for domain:_acme-challenge.mondomaine.fr J'ai vérifié la Consumer Key, pas d'erreur lors du copier-coller, c'est bien la bonne (?). J'ai recréé les AK, AS et CK et relancé acme, sans succès, même erreur. Est-ce que je ne remplis pas les prérequis avec mon DSM 5 ? Qu'est-ce qui peut faire que ça marchait en Mai et plus depuis, même avec ce tuto testé et éprouvé ? Merci. Modifié le 28 août 2020 par Ooook 0 Citer
Ooook Posté(e) le 29 août 2020 Posté(e) le 29 août 2020 Bon, après avoir essayé plein de trucs, j'ai fini par voir que ma version de curl (celle du DSM 5) était très vieille (7.36). Installation de IPKG, puis de libcurl 7.58, et ça roule, plus d'erreur 60 ! 0 Citer
oracle7 Posté(e) le 29 août 2020 Auteur Posté(e) le 29 août 2020 @Ooook Bonjour, Comme sur tout forum, il est d'usage que les nouveaux membres passent par la rubrique [PRESENTATION] pour faire la leur. Certains ici, y sont sensibles et de plus cela facilite les réponses en fonction du niveau de compétences du membre. Cela dit rassures-toi il n'est pas trop tard pour bien faire ... Ta mésaventure avec ta version de curl trop ancienne, est peut-être l'arbre qui cache la forêt ! Saches que la présente méthode de génération d'un certificat wilcard LetsEncrypt avec "acme.sh" n'a pas été validée pour DSM5. Je ne peut donc te garantir qu'elle fonctionne parfaitement sous cet OS et ce d'autant plus, pour le script Python de renouvellement automatique du certificat qui exploite l'architecture de DSM 6.2.x minimum. Il est possible que l'organisation des fichiers liés au certificat puisse avoir évoluée entre DSM5 et DSM6.2.x (ce que je ne sais), et donc génère des dysfonctionnements d'où ma présente mise en garde. Donc une mise en œuvre de cette procédure sous DSM5 est à tes risques et périls. A bon entendeur ... Cordialement oracle7😉 0 Citer
Ooook Posté(e) le 29 août 2020 Posté(e) le 29 août 2020 (modifié) Sur le 1., je suis inscrit depuis tellement longtemps que je pensais l'avoir fait... mais il semble bien que non. My bad, c'est corrigé. Sur le 2., oui, je me doutais bien, mais on ne sait jamais. Et en décortiquant je vois que ton tuto n'est finalement pas si différent de celui que j'avais appliqué. Pour info, j'ai effectivement eu 2 soucis avec ton tuto sur DSM 5 : comme dit juste au dessus, la librairie curl est trop ancienne sur le DSM 5, il faut une version plus à jour donc install ipkg et ipkg GUI puis install curl depuis ipkg GUI puis remplacement du curl DSM par le curl ipkg via un lien symbolique (je peux détailler tout ça si besoin) j'ai ensuite un soucis au moment de la création, il ne reconnaît pas ma Consumer Key. Je fais donc la création, mais sans renseigner la CK, ce qui ajoute une petite étape supplémentaire à faire avec OVH En l'absence de CK, la commande ./acme.sh --issue --keylength 4096 -d "$CERT_DOMAIN" -d "$CERT_WDOMAIN" --dns "$CERT_DNS" renvoie [Thu, Aug 25, 2016 10:54:03] Using OVH endpoint: ovh-eu [Thu, Aug 25, 2016 10:54:04] OVH consumer key is empty, Let's get one: [Thu, Aug 25, 2016 10:54:05] Please open this link to do authentication: https://eu.api.ovh.com/auth/?credentialToken=n0Qbjm6wBdBr2KiSqIuYSEnixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [Thu, Aug 25, 2016 10:54:05] Here is a guide for you: https://github.com/Neilpang/acme.sh/wiki/How-to-use-OVH-domain-api [Thu, Aug 25, 2016 10:54:05] Please retry after the authentication is done. [Thu, Aug 25, 2016 10:54:05] Error add txt for domain:_acme-challenge.mytest.mydomain.com Cliquer sur le lien https://eu.api.ovh.com/auth/?credentialToken=n0Qbjm6wBdBr2KiSqIuYSEnixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Et sur la page OVH, il ne reste qu'à choisir la durée de validité "Unlimited" puis "Authorize Access". j'ai pu aller ensuite jusqu'au Deploiement et là ça bloque de nouveau. J'ai donc repris mon ancien tuto et généré les certificats "autrement", avec un déploiement intégré : /usr/local/share/acme.sh/acme.sh --issue --post-hook "kill -USR1 `cat /run/httpd/httpd-sys.pid`" --keylength 4096 -d "$CERT_DOMAIN" -d "$CERT_WDOMAIN" --dns "$CERT_DNS" --certpath /usr/syno/etc/ssl/ssl.crt/server.crt --keypath /usr/syno/etc/ssl/ssl.key/server.key --fullchainpath /usr/syno/etc/ssl/ssl.intercrt/server-ca.crt Ainsi les certificats générés sont à la fois dans /volume1/Cert et dans les emplacements prévus sur DSM 5 (/usr/syno/etc/ssl/...). Dernier point, l'automatisation du renouvellement. Là c'est le cron le plus simple à mettre en place : Edition de la crontab vi /etc/crontab et remplissage avec l'exécution régulière d'acme pour renouveler avant expiration 3 2 * * 2 root /usr/local/share/acme.sh/acme.sh --cron et pour s'assurer que ça fonctionne, on le lance une fois à la main en ssh : /usr/local/share/acme.sh/acme.sh --cron qui renvoie quelque chose de ce genre : [Sat Aug 29 16:41:39 CEST 2020] ===Starting cron=== [Sat Aug 29 16:41:39 CEST 2020] Already uptodate! [Sat Aug 29 16:41:39 CEST 2020] Upgrade success! [Sat Aug 29 16:41:39 CEST 2020] Auto upgraded to: 2.8.7 [Sat Aug 29 16:41:39 CEST 2020] Renew: 'mondomaine.fr' [Sat Aug 29 16:41:39 CEST 2020] Skip, Next renewal time is: Wed Oct 28 14:49:48 2020 [Sat Aug 29 16:41:39 CEST 2020] Add '--force' to force to renew. [Sat Aug 29 16:41:39 CEST 2020] Skipped mondomaine.fr [Sat Aug 29 16:41:39 CEST 2020] ===End cron=== Voilà pour mon expérience avec acme, let's encrypt et DSM 5. (en espérant que tout se passe bien lors du renouvellement d'octobre... ) Modifié le 29 août 2020 par Ooook l'éditeur de m'aime pas 0 Citer
oracle7 Posté(e) le 29 août 2020 Auteur Posté(e) le 29 août 2020 @Ooook Bonjour, C'est sympa de ta part d'avoir fait ce retour détaillé. Cela pourra sûrement servir à tous ceux qui sont encore sous DSM5. Bien qu'ils ne doivent pas être légion tout même. Il y a 1 heure, Ooook a dit : Ainsi les certificats générés sont à la fois dans /volume1/Cert et dans les emplacements prévus sur DSM 5 (/usr/syno/etc/ssl/...). J'espère aussi que le déploiement que tu as fait sera exhaustif. Là j'ai un doute mais je peux me tromper. A voir à l'usage ... Pour le renouvellement j'ai aussi quelques craintes car, de ce que j'ai compris, l'organisation de l'architecture DSM5 semble bien différente de celle de DSM6 (déjà l'emplacement que tu cites, n'est plus d'actualité. Du coup comme le script Python exploite cette dernière (DSM6) "à fond", je ne suis guère optimiste sur l'issue. Tu auras sûrement des adaptations à faire ... Cordialement oracle7😉 0 Citer
Ooook Posté(e) le 29 août 2020 Posté(e) le 29 août 2020 (modifié) Merci @oracle7 Le 29/08/2020 à 18:57, oracle7 a dit : J'espère aussi que le déploiement que tu as fait sera exhaustif. Là j'ai un doute mais je peux me tromper. A voir à l'usage ... Peux-tu me préciser cette partie "déploiement exhaustif" ? C'est en rapport avec cette partie du tuto ? que le certificat soit bien valide pour chaque sous-domaine ? Le problème c'est qu'il n'y a pas d'équivalent en DSM 5 😞 En pratique, je viens de voir que j'ai effectivement des soucis, mais je ne sais pas si ce n'est pas en essayant de réparer les certificats que j'aurais cassé le reste... le webmail fonctionne en local avec le hostname mais est inaccessible depuis mondomaine.fr/mail, avec le syno qui me met le beau message suivant (un peu comme si le LoopBack de mon routeur ne fonctionnait plus) : Idem avec PhotoStation et Webstation Par contre FileStation fonctionne sans soucis Au moins j'ai récupéré mon webdav et l'accès au syno, c'est déjà un premier pas. 😕 Edit : La suite (et la résolution) sont ici : Modifié le 1 septembre 2020 par Ooook Lien vers le post dédié à mes soucis (résolus du coup) 0 Citer
oracle7 Posté(e) le 29 août 2020 Auteur Posté(e) le 29 août 2020 @Ooook Bonjour, il y a 8 minutes, Ooook a dit : Peux-tu me préciser cette partie "déploiement exhaustif" ? C'est en rapport avec cette partie du tuto ? que le certificat soit bien valide pour chaque sous-domaine ? Le problème c'est qu'il n'y a pas d'équivalent en DSM 5 😞 Tu le dis toi même d'une part vis à vis de l'affectaion du certificat aux services et d'autre part par rapport à l'organisation de DSM5 qui est différente de DSM6. il y a 10 minutes, Ooook a dit : le webmail fonctionne en local avec le hostname mais est inaccessible depuis mondomaine.fr/mail, avec le syno qui me met le beau message suivant (un peu comme si le LoopBack de mon routeur ne fonctionnait plus) : Là, à mon avis tu as un autre soucis (coté routeur ???) et qui n'est pas lié au certificat car tu aurais alors plutôt des alertes de sécurité. Cordialement oracle7😉 1 Citer
oudin Posté(e) le 31 août 2020 Posté(e) le 31 août 2020 (modifié) Renouvellement automatique avec le nouveau script python, juste besoin de me reconnecter au site de l'API d'OVH et tout a fonctionné parfaitement. Récup des 3 fichiers du certificat pour remplacer à la main ceux du 2ème syno et là encore, un sans faute. Merci @Oracle7 et à @bruno78, vous avez vraiment fait du beau travail. Grace à vous l'installation et le renouvellement sont à la portée de tous. Modifié le 31 août 2020 par oudin 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.