Aller au contenu

[TUTO] Certificat Let's Encrypt avec acme.sh & api Ovh en Docker (DSM6/7) (Update 07/09/22)


Messages recommandés

Posté(e)

@Einsteinium Je ne me rappelle plus en avoir parlé, mais oui, j'ai un certificat par site parce que j'ai estimé que c'était plus simple de déployer le script sur chaque NAS plutôt que de faire un certificat commun.

Sur un site j'ai un certificat pour ndd, serv1.ndd et *.serv1.ndd, sur l'autre pour ndd, serv2.ndd et *.serv2.ndd

J'aurais pu effectivement ne faire qu'un seul certificat couvrant ndd, *.ndd, *.serv1.ndd et *.serv2.ndd et l'importer sur chaque site, mais ça m'aurait obligé à faire des manips d'importation alors que là, les sites sont indépendants et les renouvellements sont automatiques.

Posté(e)
Le 16/12/2021 à 00:15, Mic13710 a dit :

@Einsteinium Je ne me rappelle plus en avoir parlé, mais oui, j'ai un certificat par site parce que j'ai estimé que c'était plus simple de déployer le script sur chaque NAS plutôt que de faire un certificat commun.

Sur un site j'ai un certificat pour ndd, serv1.ndd et *.serv1.ndd, sur l'autre pour ndd, serv2.ndd et *.serv2.ndd

J'aurais pu effectivement ne faire qu'un seul certificat couvrant ndd, *.ndd, *.serv1.ndd et *.serv2.ndd et l'importer sur chaque site, mais ça m'aurait obligé à faire des manips d'importation alors que là, les sites sont indépendants et les renouvellements sont automatiques.

D'accord non je me posais la question si avec lets encrypt on pouvait faire un certificat pour plusieurs domaines et en wildcard et la réponse et oui.

Posté(e)
Il y a 4 heures, Einsteinium a dit :

la réponse et oui.

Absolument.

Et pour les API, tu peux avoir une API chez OVH qui couvre le compte. Pratique lorsque tu as plusieurs ndd hébergés sur le même compte. Mon frère par exemple a deux domaines chez OVH, un en .com et un autre en .net. Avec une API commune, je n'ai qu'une instance Docker pour gérer les deux certificats puisque le account.conf est identique pour les deux.

Posté(e)
il y a 43 minutes, Mic13710 a dit :

pour gérer les deux certificats puisque le account.conf est identique pour les deux.

Donc tu as fait une instance, mais deux certificats quand même, moi j'ai fait une instance et un certificat unique pour deux domaines, afin de ne pas être gêné par la fonction par "defaut" de synology, cela avait été abordé dans le topic de mémoire. (ou le déploiement passé par défaut le certificat), par contre niveau api j'ai fais en droit restreint sur les deux domaines uniquement et pas une couvrant le compte

Posté(e)
il y a 2 minutes, Einsteinium a dit :

Donc tu as fait une instance, mais deux certificats quand même

Oui, un pour le .net et un autre pour le .com avec la même API. C'est vrai que le problème se pose avec le certificat par défaut qui est celui qui a été renouvelé en dernier. Ce n'est pas non plus très gênant car toutes les entrées de mon reverse proxy sont bien couvertes avec leur certificat respectif. Et je corrige manuellement le certificat par défaut quand je vais faire un tour dans DSM.

il y a 3 minutes, Einsteinium a dit :

moi j'ai fait une instance et un certificat unique pour deux domaines

Ca m’intéresse. C'est possible ça ? Comment fais-tu lorsque tu crées le certificat ? un truc du genre :

docker exec Acme sh -c "acme.sh --issue --keylength 4096 -d 'mydomain.com' -d '*.mydomain.com' -d 'mydomain.net' -d '*.mydomain.net' --dns dns_ovh"

Ca peut passer comme ça ?

il y a 7 minutes, Einsteinium a dit :

par contre niveau api j'ai fais en droit restreint sur les deux domaines uniquement et pas une couvrant le compte

Si tu n'as qu'une instance, comment fais-tu la différence entre une API et une autre ?

Les clés sont normalement localisées dans le account.conf de l'instance :

SAVED_OVH_AK='xxxxxxxxxxxxxxxxxxxx'
SAVED_OVH_AS='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
SAVED_OVH_CK='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

 

Posté(e)
il y a 56 minutes, Mic13710 a dit :

Ca peut passer comme ça ?

C’est exactement cela 🙂

il y a 58 minutes, Mic13710 a dit :

Si tu n'as qu'une instance, comment fais-tu la différence entre une API et une autre ?

Tu refais une api Ovh, et tu doubles les get/get/… pour le second domaine ou alors tu *jocke*

Posté(e)

OK, merci pour le retour.

Je vais considérer l'histoire du certificat unique pour les deux domaines de mon frère. Par contre, je vais garder l'API commune qui est moins compliquée à gérer.

De mon côté, j'ai un ndd chez ovh et un autre chez gandi. Pas d'autre choix dans ce cas de faire un certificat par registar car le script de demande n'est pas le même (dns_ovh et dns_gandi_livedns), mais là aussi je les crée sous une seule instance docker. Le account.conf contient alors les deux API :

SAVED_OVH_AK='xxxxxxxxxxxxx'
SAVED_OVH_AS='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
SAVED_OVH_CK='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
GANDI_LIVEDNS_KEY='xxxxxxxxxxxxxxxxxxxxxxxxxxx'

 

  • 1 mois après...
Posté(e)

Bonjour !

J'ai un petit soucis avec la toute fin du tuto.InkedCapt1_LI.jpg.e42bb4b8b5f51a9e0435a9d2c937a039.jpg

Sachant que :

- L'admin créé est correct, son mot de passe aussi (multiples vérifications, je l'ai même recréé de 0)

- La double authentification est désactivée

- Le pare feu devrait normalement laisser passer ce qu'il faut (j'ai le pare feu du tuto de sécurisation des accès)

D'où peut venir le problème à ce moment là ?

Merci !

Posté(e)

C'est bien la première chose que j'ai vérifiée pourtant !

J'avais la double authentification activée pour tous les administrateurs en commençant le tuto. Après avoir lancé cette dernière commande une première fois, je suis allé voir, j'ai désactivé la 2xauth supprimé l'admin créé en 3B1, je l'ai recréé en vérifiant bien que la 2xauth n'était pas activée pour lui, et je relance Putty pour relancer la commande, même erreur...

Si cette ligne ("If two-factor authentication...") apparait, c'est forcément que le problème est lié à la double authentification ? Vu qu'il y avait "If" au début de la ligne je me suis dit que ça pouvait être autre chose !

Posté(e)
Citation

Si cette ligne ("If two-factor authentication...") apparait, c'est forcément que le problème est lié à la double authentification ?

Non, cette string d'erreur est envoyée en cas d'échec d'authentification, quel qu'il soit (cf. le code :: L114). 

Posté(e)
il y a 20 minutes, Einsteinium a dit :

Alors cela doit venir de caractères spéciaux mis dans le mot le password (un très long Password avec majuscule/minuscules/tiret, c’est plus que bon)

Effectivement c'était bien ça !! Des accents sur des lettres, que j'ai enlevées et ça fonctionne.
Merci beaucoup pour la rapidité de réponse 🙂

  • 2 semaines après...
Posté(e)

Bonjour!

J'ai suivi le tuto et essayé de générer mes certificats (section 2D) sans succès.

Ce que j'ai déjà fait:

  • Créé plusieurs fois la clé API (avec et sans restriction IP)
  • Essayé de générer le certificat pour mydomain.com seulement

De ce que je comprends des logs, la connexion à l'API semble ok, par contre l'API n'arrive pas à créer le record TXT coté OVH.

Si quelqu'un peut éclairer ma lanterne 🙂

Voici les logs

  1. [Sun Feb 6 13:34:32 UTC 2022] Running cmd: issue
  2. [Sun Feb 6 13:34:32 UTC 2022] _main_domain='mydomain.com'
  3. [Sun Feb 6 13:34:32 UTC 2022] _alt_domains='*.mydomain.com'
  4. [Sun Feb 6 13:34:32 UTC 2022] Using config home:/acme.sh
  5. [Sun Feb 6 13:34:32 UTC 2022] default_acme_server='https://acme-v02.api.letsencrypt.org/directory'
  6. [Sun Feb 6 13:34:32 UTC 2022] ACME_DIRECTORY='https://acme-v02.api.letsencrypt.org/directory'
  7. [Sun Feb 6 13:34:32 UTC 2022] DOMAIN_PATH='/acme.sh/mydomain.com'
  8. [Sun Feb 6 13:34:32 UTC 2022] Le_NextRenewTime
  9. [Sun Feb 6 13:34:32 UTC 2022] Using ACME_DIRECTORY: https://acme-v02.api.letsencrypt.org/directory
  10. [Sun Feb 6 13:34:32 UTC 2022] _init api for server: https://acme-v02.api.letsencrypt.org/directory
  11. [Sun Feb 6 13:34:32 UTC 2022] GET
  12. [Sun Feb 6 13:34:32 UTC 2022] url='https://acme-v02.api.letsencrypt.org/directory'
  13. [Sun Feb 6 13:34:32 UTC 2022] timeout=
  14. [Sun Feb 6 13:34:32 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L '
  15. [Sun Feb 6 13:34:33 UTC 2022] ret='0'
  16. [Sun Feb 6 13:34:33 UTC 2022] ACME_KEY_CHANGE='https://acme-v02.api.letsencrypt.org/acme/key-change'
  17. [Sun Feb 6 13:34:33 UTC 2022] ACME_NEW_AUTHZ
  18. [Sun Feb 6 13:34:33 UTC 2022] ACME_NEW_ORDER='https://acme-v02.api.letsencrypt.org/acme/new-order'
  19. [Sun Feb 6 13:34:33 UTC 2022] ACME_NEW_ACCOUNT='https://acme-v02.api.letsencrypt.org/acme/new-acct'
  20. [Sun Feb 6 13:34:33 UTC 2022] ACME_REVOKE_CERT='https://acme-v02.api.letsencrypt.org/acme/revoke-cert'
  21. [Sun Feb 6 13:34:33 UTC 2022] ACME_AGREEMENT='https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf'
  22. [Sun Feb 6 13:34:33 UTC 2022] ACME_NEW_NONCE='https://acme-v02.api.letsencrypt.org/acme/new-nonce'
  23. [Sun Feb 6 13:34:33 UTC 2022] Using CA: https://acme-v02.api.letsencrypt.org/directory
  24. [Sun Feb 6 13:34:33 UTC 2022] _on_before_issue
  25. [Sun Feb 6 13:34:33 UTC 2022] _chk_main_domain='mydomain.com'
  26. [Sun Feb 6 13:34:33 UTC 2022] _chk_alt_domains='*.mydomain.com'
  27. [Sun Feb 6 13:34:33 UTC 2022] Le_LocalAddress
  28. [Sun Feb 6 13:34:33 UTC 2022] d='mydomain.com'
  29. [Sun Feb 6 13:34:33 UTC 2022] Check for domain='mydomain.com'
  30. [Sun Feb 6 13:34:33 UTC 2022] _currentRoot='dns_ovh'
  31. [Sun Feb 6 13:34:33 UTC 2022] d='*.mydomain.com'
  32. [Sun Feb 6 13:34:33 UTC 2022] Check for domain='*.mydomain.com'
  33. [Sun Feb 6 13:34:33 UTC 2022] _currentRoot='dns_ovh'
  34. [Sun Feb 6 13:34:33 UTC 2022] d
  35. [Sun Feb 6 13:34:33 UTC 2022] _saved_account_key_hash is not changed, skip register account.
  36. [Sun Feb 6 13:34:33 UTC 2022] Read key length:4096
  37. [Sun Feb 6 13:34:33 UTC 2022] _createcsr
  38. [Sun Feb 6 13:34:33 UTC 2022] Multi domain='DNS:mydomain.com,DNS:*.mydomain.com'
  39. [Sun Feb 6 13:34:33 UTC 2022] Getting domain auth token for each domain
  40. [Sun Feb 6 13:34:33 UTC 2022] d='*.mydomain.com'
  41. [Sun Feb 6 13:34:33 UTC 2022] d
  42. [Sun Feb 6 13:34:33 UTC 2022] url='https://acme-v02.api.letsencrypt.org/acme/new-order'
  43. [Sun Feb 6 13:34:33 UTC 2022] payload='{"identifiers": [{"type":"dns","value":"mydomain.com"},{"type":"dns","value":"*.mydomain.com"}]}'
  44. [Sun Feb 6 13:34:33 UTC 2022] RSA key
  45. [Sun Feb 6 13:34:33 UTC 2022] HEAD
  46. [Sun Feb 6 13:34:33 UTC 2022] _post_url='https://acme-v02.api.letsencrypt.org/acme/new-nonce'
  47. [Sun Feb 6 13:34:33 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L -I '
  48. [Sun Feb 6 13:34:33 UTC 2022] _ret='0'
  49. [Sun Feb 6 13:34:34 UTC 2022] POST
  50. [Sun Feb 6 13:34:34 UTC 2022] _post_url='https://acme-v02.api.letsencrypt.org/acme/new-order'
  51. [Sun Feb 6 13:34:34 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L '
  52. [Sun Feb 6 13:34:34 UTC 2022] _ret='0'
  53. [Sun Feb 6 13:34:34 UTC 2022] code='201'
  54. [Sun Feb 6 13:34:34 UTC 2022] Le_LinkOrder='https://acme-v02.api.letsencrypt.org/acme/order/397032700/61713206970'
  55. [Sun Feb 6 13:34:34 UTC 2022] Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/397032700/61713206970'
  56. [Sun Feb 6 13:34:34 UTC 2022] url='https://acme-v02.api.letsencrypt.org/acme/authz-v3/75811644850'
  57. [Sun Feb 6 13:34:34 UTC 2022] payload
  58. [Sun Feb 6 13:34:34 UTC 2022] POST
  59. [Sun Feb 6 13:34:34 UTC 2022] _post_url='https://acme-v02.api.letsencrypt.org/acme/authz-v3/75811644850'
  60. [Sun Feb 6 13:34:34 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L '
  61. [Sun Feb 6 13:34:35 UTC 2022] _ret='0'
  62. [Sun Feb 6 13:34:35 UTC 2022] code='200'
  63. [Sun Feb 6 13:34:35 UTC 2022] url='https://acme-v02.api.letsencrypt.org/acme/authz-v3/75811644860'
  64. [Sun Feb 6 13:34:35 UTC 2022] payload
  65. [Sun Feb 6 13:34:35 UTC 2022] POST
  66. [Sun Feb 6 13:34:35 UTC 2022] _post_url='https://acme-v02.api.letsencrypt.org/acme/authz-v3/75811644860'
  67. [Sun Feb 6 13:34:35 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L '
  68. [Sun Feb 6 13:34:35 UTC 2022] _ret='0'
  69. [Sun Feb 6 13:34:35 UTC 2022] code='200'
  70. [Sun Feb 6 13:34:35 UTC 2022] d='mydomain.com'
  71. [Sun Feb 6 13:34:35 UTC 2022] Getting webroot for domain='mydomain.com'
  72. [Sun Feb 6 13:34:35 UTC 2022] _w='dns_ovh'
  73. [Sun Feb 6 13:34:35 UTC 2022] _currentRoot='dns_ovh'
  74. [Sun Feb 6 13:34:35 UTC 2022] entry='"type":"dns-01","status":"pending","url":"https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644860/CAXXGg","token":"Gy_AluOFsvZGvC7oabN52ZBlrzkMGzIn8rHkY9gNTCU"'
  75. [Sun Feb 6 13:34:35 UTC 2022] token='Gy_AluOFsvZGvC7oabN52ZBlrzkMGzIn8rHkY9gNTCU'
  76. [Sun Feb 6 13:34:35 UTC 2022] uri='https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644860/CAXXGg'
  77. [Sun Feb 6 13:34:35 UTC 2022] keyauthorization='Gy_AluOFsvZGvC7oabN52ZBlrzkMGzIn8rHkY9gNTCU.TivouRJtsimeyIdgCwbNa6bYSoPZpiUjULdcdXS0Wk8'
  78. [Sun Feb 6 13:34:35 UTC 2022] dvlist='mydomain.com#Gy_AluOFsvZGvC7oabN52ZBlrzkMGzIn8rHkY9gNTCU.TivouRJtsimeyIdgCwbNa6bYSoPZpiUjULdcdXS0Wk8#https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644860/CAXXGg#dns-01#dns_ovh'
  79. [Sun Feb 6 13:34:35 UTC 2022] d='*.mydomain.com'
  80. [Sun Feb 6 13:34:35 UTC 2022] Getting webroot for domain='*.mydomain.com'
  81. [Sun Feb 6 13:34:35 UTC 2022] _w='dns_ovh'
  82. [Sun Feb 6 13:34:35 UTC 2022] _currentRoot='dns_ovh'
  83. [Sun Feb 6 13:34:35 UTC 2022] entry='"type":"dns-01","status":"pending","url":"https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644850/4mpNdQ","token":"dab1PckgOcTU0tx0IYdK5Dkal09SgurxFRUcvzIfnhM"'
  84. [Sun Feb 6 13:34:35 UTC 2022] token='dab1PckgOcTU0tx0IYdK5Dkal09SgurxFRUcvzIfnhM'
  85. [Sun Feb 6 13:34:35 UTC 2022] uri='https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644850/4mpNdQ'
  86. [Sun Feb 6 13:34:35 UTC 2022] keyauthorization='dab1PckgOcTU0tx0IYdK5Dkal09SgurxFRUcvzIfnhM.TivouRJtsimeyIdgCwbNa6bYSoPZpiUjULdcdXS0Wk8'
  87. [Sun Feb 6 13:34:35 UTC 2022] dvlist='*.mydomain.com#dab1PckgOcTU0tx0IYdK5Dkal09SgurxFRUcvzIfnhM.TivouRJtsimeyIdgCwbNa6bYSoPZpiUjULdcdXS0Wk8#https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644850/4mpNdQ#dns-01#dns_ovh'
  88. [Sun Feb 6 13:34:36 UTC 2022] d
  89. [Sun Feb 6 13:34:36 UTC 2022] vlist='mydomain.com#Gy_AluOFsvZGvC7oabN52ZBlrzkMGzIn8rHkY9gNTCU.TivouRJtsimeyIdgCwbNa6bYSoPZpiUjULdcdXS0Wk8#https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644860/CAXXGg#dns-01#dns_ovh,*.mydomain.com#dab1PckgOcTU0tx0IYdK5Dkal09SgurxFRUcvzIfnhM.TivouRJtsimeyIdgCwbNa6bYSoPZpiUjULdcdXS0Wk8#https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644850/4mpNdQ#dns-01#dns_ovh,'
  90. [Sun Feb 6 13:34:36 UTC 2022] d='mydomain.com'
  91. [Sun Feb 6 13:34:36 UTC 2022] _d_alias
  92. [Sun Feb 6 13:34:36 UTC 2022] txtdomain='_acme-challenge.mydomain.com'
  93. [Sun Feb 6 13:34:36 UTC 2022] txt='Ao0Wh1J1JBtbL1WwZq_kXNZzUzCXv_uMuwUK5QgjNQ4'
  94. [Sun Feb 6 13:34:36 UTC 2022] d_api='/root/.acme.sh/dnsapi/dns_ovh.sh'
  95. [Sun Feb 6 13:34:36 UTC 2022] Found domain api file: /root/.acme.sh/dnsapi/dns_ovh.sh
  96. [Sun Feb 6 13:34:36 UTC 2022] Adding txt value: Ao0Wh1J1JBtbL1WwZq_kXNZzUzCXv_uMuwUK5QgjNQ4 for domain: _acme-challenge.mydomain.com
  97. [Sun Feb 6 13:34:36 UTC 2022] Using OVH endpoint: ovh-eu
  98. [Sun Feb 6 13:34:36 UTC 2022] OVH_API='https://eu.api.ovh.com/1.0'
  99. [Sun Feb 6 13:34:36 UTC 2022] Checking authentication
  100. [Sun Feb 6 13:34:36 UTC 2022] domain
  101. [Sun Feb 6 13:34:36 UTC 2022] GET
  102. [Sun Feb 6 13:34:36 UTC 2022] url='https://eu.api.ovh.com/1.0/auth/time'
  103. [Sun Feb 6 13:34:36 UTC 2022] timeout=30
  104. [Sun Feb 6 13:34:36 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L --connect-timeout 30'
  105. [Sun Feb 6 13:34:36 UTC 2022] ret='0'
  106. [Sun Feb 6 13:34:36 UTC 2022] _ovh_p='[hidden](please add '--output-insecure' to see this value)'
  107. [Sun Feb 6 13:34:36 UTC 2022] GET
  108. [Sun Feb 6 13:34:36 UTC 2022] url='https://eu.api.ovh.com/1.0/domain'
  109. [Sun Feb 6 13:34:36 UTC 2022] timeout=
  110. [Sun Feb 6 13:34:36 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L '
  111. [Sun Feb 6 13:34:36 UTC 2022] ret='0'
  112. [Sun Feb 6 13:34:36 UTC 2022] Consumer key is ok.
  113. [Sun Feb 6 13:34:36 UTC 2022] First detect the root zone
  114. [Sun Feb 6 13:34:36 UTC 2022] domain/zone/_acme-challenge.mydomain.com
  115. [Sun Feb 6 13:34:36 UTC 2022] GET
  116. [Sun Feb 6 13:34:36 UTC 2022] url='https://eu.api.ovh.com/1.0/auth/time'
  117. [Sun Feb 6 13:34:36 UTC 2022] timeout=30
  118. [Sun Feb 6 13:34:36 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L --connect-timeout 30'
  119. [Sun Feb 6 13:34:36 UTC 2022] ret='0'
  120. [Sun Feb 6 13:34:36 UTC 2022] _ovh_p='[hidden](please add '--output-insecure' to see this value)'
  121. [Sun Feb 6 13:34:36 UTC 2022] GET
  122. [Sun Feb 6 13:34:36 UTC 2022] url='https://eu.api.ovh.com/1.0/domain/zone/_acme-challenge.mydomain.com'
  123. [Sun Feb 6 13:34:36 UTC 2022] timeout=
  124. [Sun Feb 6 13:34:36 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L '
  125. [Sun Feb 6 13:34:36 UTC 2022] ret='0'
  126. [Sun Feb 6 13:34:36 UTC 2022] _sub_domain='_acme-challenge'
  127. [Sun Feb 6 13:34:36 UTC 2022] _domain='_acme-challenge.mydomain.com'
  128. [Sun Feb 6 13:34:36 UTC 2022] Adding record
  129. [Sun Feb 6 13:34:36 UTC 2022] domain/zone/_acme-challenge.mydomain.com/record
  130. [Sun Feb 6 13:34:36 UTC 2022] GET
  131. [Sun Feb 6 13:34:36 UTC 2022] url='https://eu.api.ovh.com/1.0/auth/time'
  132. [Sun Feb 6 13:34:36 UTC 2022] timeout=30
  133. [Sun Feb 6 13:34:36 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L --connect-timeout 30'
  134. [Sun Feb 6 13:34:36 UTC 2022] ret='0'
  135. [Sun Feb 6 13:34:36 UTC 2022] _ovh_p='[hidden](please add '--output-insecure' to see this value)'
  136. [Sun Feb 6 13:34:36 UTC 2022] data='{"fieldType":"TXT","subDomain":"_acme-challenge","target":"Ao0Wh1J1JBtbL1WwZq_kXNZzUzCXv_uMuwUK5QgjNQ4","ttl":60}'
  137. [Sun Feb 6 13:34:36 UTC 2022] POST
  138. [Sun Feb 6 13:34:36 UTC 2022] _post_url='https://eu.api.ovh.com/1.0/domain/zone/_acme-challenge.mydomain.com/record'
  139. [Sun Feb 6 13:34:36 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L '
  140. [Sun Feb 6 13:34:36 UTC 2022] _ret='0'
  141. [Sun Feb 6 13:34:36 UTC 2022] Add txt record error.
  142. [Sun Feb 6 13:34:36 UTC 2022] Error add txt for domain:_acme-challenge.mydomain.com
  143. [Sun Feb 6 13:34:36 UTC 2022] _on_issue_err
  144. [Sun Feb 6 13:34:36 UTC 2022] Please check log file for more details: /acme.sh/acme.sh.log
  145. [Sun Feb 6 13:34:36 UTC 2022] url='https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644860/CAXXGg'
  146. [Sun Feb 6 13:34:36 UTC 2022] payload='{}'
  147. [Sun Feb 6 13:34:36 UTC 2022] POST
  148. [Sun Feb 6 13:34:36 UTC 2022] _post_url='https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644860/CAXXGg'
  149. [Sun Feb 6 13:34:36 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L '
  150. [Sun Feb 6 13:34:37 UTC 2022] _ret='0'
  151. [Sun Feb 6 13:34:37 UTC 2022] code='200'
  152. [Sun Feb 6 13:34:37 UTC 2022] url='https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644850/4mpNdQ'
  153. [Sun Feb 6 13:34:37 UTC 2022] payload='{}'
  154. [Sun Feb 6 13:34:37 UTC 2022] POST
  155. [Sun Feb 6 13:34:37 UTC 2022] _post_url='https://acme-v02.api.letsencrypt.org/acme/chall-v3/75811644850/4mpNdQ'
  156. [Sun Feb 6 13:34:37 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header -L '
  157. [Sun Feb 6 13:34:38 UTC 2022] _ret='0'
  158. [Sun Feb 6 13:34:38 UTC 2022] code='200'
  159. [Sun Feb 6 13:34:38 UTC 2022] pid
  160. [Sun Feb 6 13:34:38 UTC 2022] No need to restore nginx, skip.
  161. [Sun Feb 6 13:34:38 UTC 2022] _clearupdns
  162. [Sun Feb 6 13:34:38 UTC 2022] dns_entries
  163. [Sun Feb 6 13:34:38 UTC 2022] skip dns
Posté(e)
il y a 25 minutes, Gistum a dit :
  • [Sun Feb 6 13:34:36 UTC 2022] Add txt record error.
  • [Sun Feb 6 13:34:36 UTC 2022] Error add txt for domain:_acme-challenge.mydomain.com

Donc le problème vient de ta clé API, tu as du faire une erreur en la créant, ce qui arrive quand on copie/colle généralement.

Posté(e)

J'ai finalement réussi à résoudre mon problème !

J'ai joué la commande de génération du certificat :

  • Avec '--set-default-ca --server letsencrypt' dans un 1er temps
  • Puis '--server letsencrypt' seulement (probablement redondant avec la 1ère commande)

 

Posté(e)

Alors pour le coup je ne vois pas le rapport vis à vis du log posté ci dessus, car on voit bien que l'ajout dans le account pour resté sur l'api de letenscrypt est bien fonctionnel... et que l’échec ce fait au niveau de l'ajout du txt.

J'ai utilisé la même commande encore mi décembre sans soucis (en repartant sur une fresh install de dsm avec ssd)

Bref peu être un problème d'api chez ovh, c'est possible.

  • 1 mois après...
Posté(e) (modifié)

Bonjour,

Question de débutant (pas en informatique mais en certificats un peu), est ce que dans tout le tuto on peut remplacer mydomain.com par nas.mydomain.com et pouvoir ainsi avoir un certificat wildcard pour *.nas.mydomain.com ?

Car je tente depuis à l'heure (pas tout à fait depuis ce tuto, mais un similaire) et j'obtiens une erreur de ce type (j'ai bien sûr anonymisé, j'utilise mon vrai domaine)

invalid domain
Error add txt for domain:_acme-challenge.nas.mydomain.com

Edit : Ok, je suis fatigué, je le remplaçais aussi dans la création de la clé d'API ... c'est ok si je mets mydomain.com ...

Modifié par Adelscott
Posté(e)

@Adelscott

Bonjour,

Il y a 12 heures, Adelscott a dit :

pouvoir ainsi avoir un certificat wildcard pour *.nas.mydomain.com

Juste pour comprendre, quel intérêt de faire un wilcard sur nas.mydomain.com quand c'est bien plus simple à l'utilisation avec un wilcard sur mydomain.com tout court ? Tu te compliquerais pas la vie par hazard ? Maintenant ce que j'en dit, c'est toi qui voit ....

Sinon, vérifies aussi que tu n'as pas déjà (encore présent) un enregistrement de type TXT pour " _acme-challenge.nas.mydomain.com " dans ta zone DNS chez ton registar. Cet enregistrement est normalement automatiquement supprimé après l'opération de contrôle de Let'sEncrypt mais il reste en cas d'erreur ce qui bloque ensuite le processus.

Cordialement

oracle7😉

 

Posté(e)
Il y a 13 heures, Adelscott a dit :

pouvoir ainsi avoir un certificat wildcard pour *.nas.mydomain.com ?

Oui mais il faut une entrée A ou CNAME dans la zone DNS pour le ndd nas.mondomaine.com et un CNAME pour *.nas.mondomaine.com

Il y a 13 heures, Adelscott a dit :

je le remplaçais aussi dans la création de la clé d'API

si la clé API couvre domaine.com, elle couvre aussi tous le ndd inscrits dans la zone DNS.

Posté(e)

@oracle7 parce que j'aime bien tout compartimenter, je ne compte installer ce certificat que sur mon nas et je voulais que toutes mes applis soient joignables avec ce sous domaine.

Tout fonctionne au final en utilisant la bonne zone "mydomain.com" pour l'api !

J'ai juste un doute , en ayant lancé une fois manuellement le deploy (en succès)  il va bien tenter le renouvellement du certificat régulièrement ?

 

il y a 11 minutes, Mic13710 a dit :

Oui mais il faut une entrée A ou CNAME dans la zone DNS pour le ndd nas.mondomaine.com et un CNAME pour *.nas.mondomaine.com

si la clé API couvre domaine.com, elle couvre aussi tous le ndd inscrits dans la zone DNS.

Oui tout était ok côté réglage de zone DNS, j'utilisais déjà tout ça avec un certificat non wildcard, généré depuis l'interface DSM. Et en voulant rajouter une application je me suis décidé à passer en wildcard.

  • 1 mois après...
Posté(e)

Bonjour,

J'en suis à l'étape 2D, mais le script me renvoie toujours une erreur curl 6 (CURLE_COULDNT_RESOLVE_HOST)

[Fri May  6 08:16:10 UTC 2022] GET
[Fri May  6 08:16:10 UTC 2022] url='https://acme-v02.api.letsencrypt.org/directory'
[Fri May  6 08:16:10 UTC 2022] timeout=
[Fri May  6 08:16:10 UTC 2022] curl exists=0
[Fri May  6 08:16:10 UTC 2022] wget exists=0
[Fri May  6 08:16:10 UTC 2022] _CURL='curl --silent --dump-header /acme.sh/http.header  -L '
[Fri May  6 08:16:15 UTC 2022] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Fri May  6 08:16:15 UTC 2022] ret='6'
[Fri May  6 08:16:15 UTC 2022] response
[Fri May  6 08:16:15 UTC 2022] Can not init api for: https://acme-v02.api.letsencrypt.org/directory.
[Fri May  6 08:16:15 UTC 2022] Sleep 10 and retry.

Je comprends qu'il y a un sûrement un problème au niveau du réseau, j'ai donc lancé la commande de ping directement dans l'image docker (d'abord sur le dns google, puis sur l'url acme) :

root@XXXXX:~# docker exec -ti Acme ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss
root@XXXXX:~# docker exec -ti Acme ping acme-v02.api.letsencrypt.org
ping: bad address 'acme-v02.api.letsencrypt.org'

 

Le ping fonctionne pour google, mais pas pour acme...

J'ai essayé de modifier ma "Passerelle par défaut" qui exploite mon entrée VPN par LAN1, mais cela n'a rien changé...

J'aurai besoin d'une seconde paire d'yeux... 🧐🧐

Est-ce qu'un de vous comprend ce qui peut se passer ?

Merci d'avance.

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.