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)

Petite question subsidiaire : j'ai peut-être mal cherché, mais je n'ai pas trouvé la description du delta entre la version dev et cette dernière latest ?

Posté(e)

Il y a eu update de la 2.8.8 vers 2.8.9 pour acme dans la latest en intégrant des corrections qui était dans la dev, avec en outre une correction du script de déploiement synology (j’ai donc supprimé les deux lignes qui disait dsm 6 latest et dsm 7 dev) vue qu’il n’y a plus lieu.

Le tutoriel est donc finalisé.

Posté(e)

OK.

J'ai paramétré 3 dockers, un pour chaque domaine que je gère, les certificats ont bien été générés. (3 domaines, 3 dockers indépendants, 3 répertoires distincts)

Il me reste la phase de déploiement des certificats à faire, .... je vais y aller prudemment, la dernière fois j'avais fait un erreur mais ça m'a planté 48h ! donc là je vais y aller petit à petit ....

J'ai vu dans la doc github du deploy hook qu'il y a la possibilité de positionner SYNO_Create=1 pour créer le (nouveau) certificat si il n'existe pas encore dans DSM au moment du déployement. Est-ce pertinent à positionner/utiliser ?

Posté(e)

Moi j’ai fais d’abord l’importation manuelle avant le script de déploiement, donc c’est pertinent oui, moi j’ai préféré faire l’import manuelle afin être sur qu’il mette bien le certificat pour tous les services et supprimé le synology d’origine, je vais le préciser dans le tutoriel de suivre ce schéma, cela évite toute mauvaise blague

Posté(e)

@bruno78 Mais je serais toi déjà je ferais en sorte d’avoir une journée entre chaque certificat, imagine un triple import dans le synology au renouvellement, sa va clairement foutre la merde avec le re lancement de nginx 🙂

Dans le pire des cas, je serais toi je ne mettrais en auto que celui par défaut si tu vois cela change le certificat par défaut dans les certificats (je sais plus qui avait dit sa dans le topic)

Posté(e)

@Einsteinium, je viens de faire une serie de tests sur DSM7 avec cette dernière version acme.sh:latest.

  • création du certificat : OK
  • puis après export x509 :
    • importation manuelle dans DSM : OK (puis suppression manuelle)
    • déploiement automatique (--deploy-hook synology_dsm) avec création d'un nouveau certificat (SAVED_SYNO_Create=1) : OK, mais le certificat créé et déployé est positionné comme étant celui "par defaut" !
    • affectation de services WEB sur ce certificat: OK
    • 2nd déploiement automatique, toujours avec SAVED_SYNO_Create=1, mais le certificat étant donc déjà existant : OK, mais le certificat déployé est de nouveau positionné comme étant celui "par defaut" ! Affectation des services WEB pré-existants OK.

Voilà, donc fonctionnellement, à par cette histoire de positionnement par default, je n'ai pas vu de problème.

Effectivement, dans mon cas où j'ai plusieurs certificats, il faudra peut-être que je fasse attention à l'ordonnancement des différents dockers et tâches de déploiements.

Par contre, au niveau des taches planifiées (point 2C), est-ce vraiment nécessaire de le faire quotidiennement ? Même si cette tache est disons hebdomadaire, le cron interne du docker va quotidiennement lancer la tache de renouvellement du certificat, jusqu'à arriver aux 2 mois à partir desquels le renouvellement se fera . Je ne sais pas.

Maintenant, je vais voir à mettre en musique les 2 autres dockers acme.sh, et observer quelques jours.

Bruno78

Posté(e) (modifié)

Bonjour,

J'ai essayé le tuto est voici l'erreur dans les log:

 

[Wed Jan 13 16:58:04 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 16:58:04 UTC 2021] ret='6'
[Wed Jan 13 16:58:04 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 16:58:06 UTC 2021] GET
[Wed Jan 13 16:58:06 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 16:58:06 UTC 2021] timeout=
[Wed Jan 13 16:58:06 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 16:58:11 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 16:58:11 UTC 2021] ret='6'
[Wed Jan 13 16:58:11 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 16:58:13 UTC 2021] GET
[Wed Jan 13 16:58:13 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 16:58:13 UTC 2021] timeout=
[Wed Jan 13 16:58:13 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:03:10 UTC 2021] Running cmd: issue
[Wed Jan 13 17:03:10 UTC 2021] _main_domain='mpp.nitide.me'
[Wed Jan 13 17:03:10 UTC 2021] _alt_domains='no'
[Wed Jan 13 17:03:10 UTC 2021] Using config home:/acme.sh
[Wed Jan 13 17:03:10 UTC 2021] default_acme_server
[Wed Jan 13 17:03:10 UTC 2021] ACME_DIRECTORY='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:03:10 UTC 2021] DOMAIN_PATH='/acme.sh/mpp.nitide.me'
[Wed Jan 13 17:03:10 UTC 2021] Using ACME_DIRECTORY: https://acme-v02.api.letsencrypt.org/directory
[Wed Jan 13 17:03:10 UTC 2021] _init api for server: https://acme-v02.api.letsencrypt.org/directory
[Wed Jan 13 17:03:10 UTC 2021] GET
[Wed Jan 13 17:03:10 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:03:10 UTC 2021] timeout=
[Wed Jan 13 17:03:10 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:03:15 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:03:15 UTC 2021] ret='6'
[Wed Jan 13 17:03:15 UTC 2021] Can not init api.
[Wed Jan 13 17:03:15 UTC 2021] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Wed Jan 13 17:03:15 UTC 2021] _on_before_issue
[Wed Jan 13 17:03:15 UTC 2021] _chk_main_domain='mpp.nitide.me'
[Wed Jan 13 17:03:15 UTC 2021] _chk_alt_domains
[Wed Jan 13 17:03:15 UTC 2021] Le_LocalAddress
[Wed Jan 13 17:03:15 UTC 2021] d='mpp.nitide.me'
[Wed Jan 13 17:03:15 UTC 2021] Check for domain='mpp.nitide.me'
[Wed Jan 13 17:03:15 UTC 2021] _currentRoot='dns_ovh'
[Wed Jan 13 17:03:15 UTC 2021] d
[Wed Jan 13 17:03:15 UTC 2021] config file is empty, can not read CA_KEY_HASH
[Wed Jan 13 17:03:15 UTC 2021] Using config home:/acme.sh
[Wed Jan 13 17:03:15 UTC 2021] ACME_DIRECTORY='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:03:15 UTC 2021] _init api for server: https://acme-v02.api.letsencrypt.org/directory
[Wed Jan 13 17:03:15 UTC 2021] GET
[Wed Jan 13 17:03:15 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:03:15 UTC 2021] timeout=
[Wed Jan 13 17:03:15 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:03:20 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:03:20 UTC 2021] ret='6'
[Wed Jan 13 17:03:20 UTC 2021] Can not init api.
[Wed Jan 13 17:03:20 UTC 2021] Use default length 2048
[Wed Jan 13 17:03:20 UTC 2021] length='2048'
[Wed Jan 13 17:03:20 UTC 2021] Using config home:/acme.sh
[Wed Jan 13 17:03:20 UTC 2021] ACME_DIRECTORY='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:03:20 UTC 2021] Use length 2048
[Wed Jan 13 17:03:20 UTC 2021] Using RSA: 2048
[Wed Jan 13 17:03:21 UTC 2021] Create account key ok.
[Wed Jan 13 17:03:21 UTC 2021] RSA key
[Wed Jan 13 17:03:21 UTC 2021] config file is empty, can not read CA_EAB_KEY_ID
[Wed Jan 13 17:03:21 UTC 2021] config file is empty, can not read CA_EAB_HMAC_KEY
[Wed Jan 13 17:03:21 UTC 2021] config file is empty, can not read CA_EMAIL
[Wed Jan 13 17:03:21 UTC 2021] Registering account: https://acme-v02.api.letsencrypt.org/directory
[Wed Jan 13 17:03:21 UTC 2021] url
[Wed Jan 13 17:03:21 UTC 2021] payload='{"resource": "", "terms-of-service-agreed": true, "agreement": ""}'
[Wed Jan 13 17:03:21 UTC 2021] GET
[Wed Jan 13 17:03:21 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:03:21 UTC 2021] timeout=
[Wed Jan 13 17:03:21 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:03:26 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:03:26 UTC 2021] ret='6'
[Wed Jan 13 17:03:26 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:03:28 UTC 2021] GET
[Wed Jan 13 17:03:28 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:03:28 UTC 2021] timeout=
[Wed Jan 13 17:03:28 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:03:33 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:03:33 UTC 2021] ret='6'
[Wed Jan 13 17:03:33 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:03:35 UTC 2021] GET
[Wed Jan 13 17:03:35 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:03:35 UTC 2021] timeout=
[Wed Jan 13 17:03:35 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:03:40 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:03:40 UTC 2021] ret='6'
[Wed Jan 13 17:03:40 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:03:42 UTC 2021] GET
[Wed Jan 13 17:03:42 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:03:42 UTC 2021] timeout=
[Wed Jan 13 17:03:42 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:03:47 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:03:47 UTC 2021] ret='6'
[Wed Jan 13 17:03:47 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:03:49 UTC 2021] GET
[Wed Jan 13 17:03:49 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:03:49 UTC 2021] timeout=
[Wed Jan 13 17:03:49 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:03:54 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:03:54 UTC 2021] ret='6'
[Wed Jan 13 17:03:54 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:03:56 UTC 2021] GET
[Wed Jan 13 17:03:56 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:03:56 UTC 2021] timeout=
[Wed Jan 13 17:03:56 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:04:01 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:04:01 UTC 2021] ret='6'
[Wed Jan 13 17:04:01 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:04:03 UTC 2021] GET
[Wed Jan 13 17:04:03 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:04:03 UTC 2021] timeout=
[Wed Jan 13 17:04:03 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:04:08 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:04:08 UTC 2021] ret='6'
[Wed Jan 13 17:04:08 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:04:10 UTC 2021] GET
[Wed Jan 13 17:04:10 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:04:10 UTC 2021] timeout=
[Wed Jan 13 17:04:10 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:04:15 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:04:15 UTC 2021] ret='6'
[Wed Jan 13 17:04:15 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:04:17 UTC 2021] GET
[Wed Jan 13 17:04:17 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:04:17 UTC 2021] timeout=
[Wed Jan 13 17:04:17 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:04:22 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:04:22 UTC 2021] ret='6'
[Wed Jan 13 17:04:22 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:04:24 UTC 2021] GET
[Wed Jan 13 17:04:24 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:04:24 UTC 2021] timeout=
[Wed Jan 13 17:04:24 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:04:29 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:04:29 UTC 2021] ret='6'
[Wed Jan 13 17:04:29 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:04:31 UTC 2021] GET
[Wed Jan 13 17:04:31 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:04:31 UTC 2021] timeout=
[Wed Jan 13 17:04:31 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:04:36 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:04:36 UTC 2021] ret='6'
[Wed Jan 13 17:04:36 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:04:38 UTC 2021] GET
[Wed Jan 13 17:04:38 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:04:38 UTC 2021] timeout=
[Wed Jan 13 17:04:38 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:04:43 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:04:43 UTC 2021] ret='6'
[Wed Jan 13 17:04:43 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:04:45 UTC 2021] GET
[Wed Jan 13 17:04:45 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:04:45 UTC 2021] timeout=
[Wed Jan 13 17:04:45 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:04:50 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:04:50 UTC 2021] ret='6'
[Wed Jan 13 17:04:50 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:04:52 UTC 2021] GET
[Wed Jan 13 17:04:52 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:04:52 UTC 2021] timeout=
[Wed Jan 13 17:04:52 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:04:57 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:04:57 UTC 2021] ret='6'
[Wed Jan 13 17:04:57 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:04:59 UTC 2021] GET
[Wed Jan 13 17:04:59 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:04:59 UTC 2021] timeout=
[Wed Jan 13 17:04:59 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:05:04 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:05:04 UTC 2021] ret='6'
[Wed Jan 13 17:05:04 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:05:06 UTC 2021] GET
[Wed Jan 13 17:05:06 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:05:06 UTC 2021] timeout=
[Wed Jan 13 17:05:06 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:05:11 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:05:11 UTC 2021] ret='6'
[Wed Jan 13 17:05:11 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:05:13 UTC 2021] GET
[Wed Jan 13 17:05:13 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:05:13 UTC 2021] timeout=
[Wed Jan 13 17:05:13 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:05:18 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:05:18 UTC 2021] ret='6'
[Wed Jan 13 17:05:18 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:05:20 UTC 2021] GET
[Wed Jan 13 17:05:20 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:05:20 UTC 2021] timeout=
[Wed Jan 13 17:05:20 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:05:25 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:05:25 UTC 2021] ret='6'
[Wed Jan 13 17:05:25 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:05:27 UTC 2021] GET
[Wed Jan 13 17:05:27 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:05:27 UTC 2021] timeout=
[Wed Jan 13 17:05:28 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:05:33 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:05:33 UTC 2021] ret='6'
[Wed Jan 13 17:05:33 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:05:35 UTC 2021] GET
[Wed Jan 13 17:05:35 UTC 2021] url='https://acme-v02.api.letsencrypt.org/directory'
[Wed Jan 13 17:05:35 UTC 2021] timeout=
[Wed Jan 13 17:05:35 UTC 2021] _CURL='curl --silent --dump-header /acme.sh/http.header  -L  -g '
[Wed Jan 13 17:05:40 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:05:40 UTC 2021] ret='6'
[Wed Jan 13 17:05:40 UTC 2021] Could not get nonce, let's try again.
[Wed Jan 13 17:05:42 UTC 2021] Giving up sending to CA server after 20 retries.
[Wed Jan 13 17:05:42 UTC 2021] Register account Error: 
[Wed Jan 13 17:05:42 UTC 2021] _on_issue_err
[Wed Jan 13 17:05:42 UTC 2021] Please check log file for more details: /acme.sh/acme.sh.log

 

Si quelqu'un comprend quelque chose 🙂

Merci

Modifié par Geoff1330
Posté(e)

Alors post le log entier via un hébergeur, car là c’est incomplet (il manque le début) et c’est inbuvable dans l’état, mais on dirais bien que le docker n’a pas accès à internet... 

Il y a 2 heures, bruno78 a dit :

Par contre, au niveau des taches planifiées (point 2C), est-ce vraiment nécessaire de le faire quotidiennement ? Même si cette tache est disons hebdomadaire, le cron interne du docker va quotidiennement lancer la tache de renouvellement du certificat, jusqu'à arriver aux 2 mois à partir desquels le renouvellement se fera . Je ne sais pas.

Bah moi c’est parce que j’ai groupé avec tous mes dock, pour acme pas forcément utile dans la mesure où acme ce met à jour lui même au lancement, mais bon si un update du script mais pas des paquets nécessaires au moment de l’exécution il pourra y avoir des erreurs au renouvellement, disons une fois tout les 3 mois genre une semaine avant renouvellement c’est suffisamment, acme ne fessant que la génération/déploiement de script il n’y a rien de vital à le faire chaque jour.

Posté(e) (modifié)

J'ai essayé a nouveau ce matin, mais cela ne fonctionne pas. si je comprend bien le log, il ne sait pas initier l'api.

[Wed Jan 13 17:03:15 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 6
[Wed Jan 13 17:03:15 UTC 2021] ret='6'
[Wed Jan 13 17:03:15 UTC 2021] Can not init api.

 

maintenant, je me demande une chose, j'utilise des sous-domaine pour different NAS (yyy.nitide.me, zzz.nitide.me,...)

J'ai (enfin) réussi à mettre un certificat sur un des NAS, mais du coup, est-ce que cela ne risque pas de poser problème avec les autres vue que c'est le "même" domaine de base?

 

Merci

 

EDIT:

le sous-domaine ne pose visiblement pas de problème, j'ai réussis a en faire un 2eme manuellement.

il me reste un NAS à faire, mais je n'ai pas la possibilité d'ouvrir le port 80 et 443 sur cette ligne 😞

 

Modifié par Geoff1330
Posté(e)

@Einsteinium, Aie aie aie ....

alors sur mes 3 domaines, la mise à jour et le deploy automatique du certificat ont bien fonctionné.

Le 3eme domaine, c'est celui du NAs lui même .... et là patatra, comme la première fois, il m'a dégagé tous mes virtual hosts. Punition : re-installation complète du Webserver, reconfiguration un par un des virtuals hosts (comme c'est des Wordpress à chaque fois faut re customiser (permalink) ), j'ai aussi des personnalisations sur les logs .... bref j'y ai encore passé l'après midi. Sauf que cette fois ci je ne crois pas avoir fait de boulette !

Toujours est' il qu'à présent les certificats actifs sont bien ceux du tuto en version finale, donc à voir renouvellement dans 2 mois.

J'ai mis la priorité à tout rétablir, je vais me pencher sur le déroulé exact de ce qui a pu se passer de travers !.... (en fait j'ai une vague idée : ce dernier certificat, je l'ai déployé direct via le hook et SYNO_Create=1, sans l'avoir au préalable importé manuellement une première fois .... )

Posté(e)

Retour intéressant, pour ma part il n’a touché à aucun de mes virtual hors dans webserver.

Bref comme le did à proscrire et faire un compte dédier, il vaut mieux faire un premier import manuel avant le déploiement par le hook.

Moi le prochain c’est le 8 février 🙂

Posté(e) (modifié)
Le 31/10/2020 à 16:25, Mic13710 a dit :

Je viens de faire le certificat pour mon ndd chez Gandi.

L'obtention de la clé API est assez simple, encore faut-il trouver comment. Une fois connecté sur le compte, on clique en haut à droite pour aller dans les paramètres du compte. On clique sur "Gérer les Apps autorisées", Onglet "Sécurité". On génère une clé API qu'on sauvegarde pour l'utiliser dans :



export GANDI_LIVEDNS_KEY="fdmlfsdklmfdkmqsdfk"

C'est la seule clé dont on a besoin.

Et pour créer le certificat :



acme.sh --issue --keylength 4096 --dns dns_gandi_livedns -d mondomaine -d *.mondomaine

Dans un premier temps, j'ai essayé d'utiliser le même conteneur que pour OVH, mais après la création du certificat, l'opération n'est pas allée jusqu'au bout. J'avais bien un dossier du nom de mon domaine dans le dossier Acme mais il était incomplet. Je l'ai supprimé pour ne pas être embêté pour la suite.

J'ai créé un autre conteneur afin de séparer le traitement des deux ndd. J'ai toutefois utilisé le même json, pour ne pas avoir 2 instances acme qui tournent séparément. Ceci a eu pour but de recréer un autre dossier comme précédemment, mais cette fois, la génération du domaine s'est bien déroulée.

Pour la suite, j'ai fait comme précédemment à savoir que je ne suis pas passé en ssh mais j'ai simplement utilisé le certificat pour en créer un nouveau directement dans DSM avec la clé et le certificat intermédiaire.

La partie mise à jour automatique dans DSM a été faite de la même manière que pour le certificat précédent.

Hormis l'obtention de la clé, la mise en oeuvre est encore plus courte que pour OVH car il n'y a qu'une valeur à indiquer pour l'API ai lieu de 3. J'ai du mettre moins de 10mn pour l'opération sur Docker.

Reste plus qu'à surveiller le bon renouvellement et la mise à jour auto des deux certificats.

Salut tout le monde !

 

J'avais suivi, il y a déjà quelques temps, un ancien tuto sur ce forum pour la mise en place d'un certificat Let's Encrypt.
Mon certificat, comme vous vous en doutez, n'est plus valide depuis 27/11/2019 ... 

A cette même période j'avais suivi et réalisé les tutos DNS Server, Sécuriser les accès à son NAS, et accès SSH et root via DSM 6.

J'ai un nom de domaine chez Gandi, donc j'ai suivi les instructions modifiées par @Mic13710 et j'ai (tant bien que mal) réussi à lancer la commande via l'interface docker :

acme.sh --issue --keylength 4096 --dns dns_gandi_livedns -d mondomaine -d *.mondomaine

J'ai eu :

checking ndd.tld for _acme-challenge.ndd.tld 

qui s'est fait toutes les 20 secondes

En réponse j'ai eu :

Not valid yet, let's wait 10 secondes and check next one.

Puis 10 secondes plus tard, j'ai eu :

Let's wait 10 seconds and check again
You can use '--dnssleep' to disable public dns check.
See: https://github.com/acmesh-official/acme.sh/wiki/dnscheck
Checking ndd.tld for _acme-challenge.ndd.tld
Not valid yet, let's wait 10 seconds and check next one.
Let's wait 10 seconds and check again.

 

Et au bout d'une dizaine de minutes, la commande s'arrête avec :

Timed out waiting for DNS
check dns error
Please check log file for more details: /acme.sh/acme.sh.log


 

Je suis totalement paumé là 🤯

J'ai regardé le fameux log, mais je ne sais pas le décrypté.

Est-ce que j'aurai zappé un truc ? Quelles informations supplémentaires vous faut-il pour m'aiguiller ?
Merci pour ce tuto malgré tout, et merci d'avance pour votre aide 

 

acme.sh.log

Modifié par DaG33K
Posté(e)

OK merci pour l'aiguillage 👍

Je ne comprends pas pourquoi il vas chercher du côté de cloudflare ... 

Je reprends le tuto DNS depuis zéro. Ayant déménagé, je pensais que changer simplement l'IP publique (me concernant) que j'avais renseigné auparavant en suivant le tuto DNS aurais suffit à remettre tout ça d'aplomb, j'ai du zappé quelques chose dans la chaine ... je creuse !

Merci encore 🙂

Posté(e) (modifié)

Bonsoir,

Je souhaite mettre en place votre solution pour le certificat LE.

La génération du certificat semble être OK (j'ai pas vue de message d'erreur ou alors j'ai pas fait attention).

Cependant il y a un point que je ne comprend pas lors du 3.a.

Citation
 
  • 3) Installation des certificats :

 

A) Importation manuel :

Vos certificats seront disponibles directement dans filestation "docker/Acme/votredomaine" et ce qui nous intéresse dedans :

Certificat : mydomain.com.cer
Clé privée : mydomain.com.key
Certificat intermédiaire : ca.cer

On va maintenant faire leur import manuellement, dans "Panneau de configuration/Sécurité/Certificat", il faudra faire une petite conversion, avec le planificateur de tâche (Cf point 2C) ou en ssh en remplaçant "mydomain.com" et "DOSSIEREXPORT" :



openssl x509 -in /volume1/docker/Acme/mydomain.com/mydomain.com.cer -out /volume1/DOSSIEREXPORT/certificat.pem
openssl x509 -in /volume1/docker/Acme/mydomain.com/ca.cer -out /volume1/DOSSIEREXPORT/certificatintermediaire.pem
cp /volume1/docker/Acme/mydomain.com/mydomain.com.key /volume1/DOSSIEREXPORT/cleprivee.key

Dans un premier temps je n'ai pas les même extension de fichier pour le certificat qui est en csr au lieu de cer, ni de clé ca. Après exécution de la commande en ssh voici les fichiers et dossier qui sont créer.

Acme
-ca
--acme-v02.api.letsencrypt.org
---account.json
---account.key
---ca.conf
-mydomain.com
--mydomain.com.conf
--mydomain.com.csr
--mydomain.com.csr.conf
--mydomain.com.key
-account.conf
-acme.sh.log
-http.header

Dans un second temps, à quoi sert de changer mydomain.com par DOSSIEREXPORT. Est-ce que c'est pour pouvoir mieux dl les fichiers ?

Bonne soirée/journée

Modifié par Karnak.Tharn
Posté(e)

Le csr c’est la demande de signature du certificat.

la il y a eu eu un loupé, envois moi par message privé le .log ou poste le ici en épurant le domaine et les clés.

Oui c’est histoire d’avoir les nouveaux certificats à part, sachant qu’il sont nommé à fin de simplifier leur import dans dsm.

Posté(e)

Retour sur la suite du tuto et merci à @Einsteinium pour son aide en mp.

Alors pour aider les prochains :

blocage du script ici :

 

Error add txt for domain:_acme-challenge.ndd.tld

Après vérification pas d'enregistrement "_acme-challenge..." sur ovh, l'erreur venait surement de moi.

En effet, j'ai exécuté la commande en mode feignant avec un :

 

sudo docker exec Acme sh -c "acme.sh --issue --keylength 4096 -d 'ndd.tld' -d '*.ndd.tld' --dns dns_ovh"

en exécutant la commande après être passé en root via un 'sudo -i' je n'ai pas eu d'erreur.

Voilà pour la résolution de ce problème.

_____________________________________________________

Cependant j'ai un souci sur le déploiement auto.

J'ai parcouru plusieurs fois le sujet et @Skylnex à rencontré le même problème, j'ai suivi les conseils du tuto et ceux donner à Skylnex mais toujours pareil.

J'ai bien un compte admin privé de tous les droits et j'ai désactivé ma double authentification dans la gestion des users.

root@syno:~# docker exec Acme sh -c "acme.sh --deploy --home . -d 'ndd.tld' --deploy-hook synology_dsm"
[Sat Jan 23 13:44:16 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 7
[Sat Jan 23 13:44:16 UTC 2021] Logging into 172.17.0.1:5000
[Sat Jan 23 13:44:16 UTC 2021] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 7
[Sat Jan 23 13:44:16 UTC 2021] Unable to authenticate to 172.17.0.1:5000 using http.
[Sat Jan 23 13:44:16 UTC 2021] Check your username and password.
[Sat Jan 23 13:44:16 UTC 2021] Error deploy for domain:ndd.tld
[Sat Jan 23 13:44:16 UTC 2021] Deploy error.

Le fait d'avoir mes dossiers docker sur le volume3 et non le 1 ne doit pas avoir d'impact mais du coup je le précise au cas où.

J'ai également des ports perso pour l'accès au Nas qui ne sont plus 5000 et 5001. J'ai fait des tests en changeant le port et le host dans le fichier account.conf et ndd.tld.conf mais pas d'amélioration.

J'ai également vérifié l'ip de mon docker qui est 172.17.0.3 et j'ai bien 172.17.0.1 pour la gateway. Reboot le syno et même donner les droits d'accès en écriture au nouveau profil au dossier docker.

Si l'un de vous à d'autres pistes.

Merci et bonne journée.

Posté(e)

Effectivement docker c’est toujours en root en ligne de commande, je vais le préciser.

Donc le port a changer c’est sur si tu a changer le 5000 par défaut, si cela ne marche toujours pas, à mon avis tu as un problème de password (un caractère spécial qui doit foutre la merde)

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

Effectivement docker c’est toujours en root en ligne de commande, je vais le préciser.

Donc le port a changer c’est sur si tu a changer le 5000 par défaut, si cela ne marche toujours pas, à mon avis tu as un problème de password (un caractère spécial qui doit foutre la merde)

Haaa j'avais pas pensé aux caractères spéciaux avec mon générateur de password, je vais aller check ça.

 

Edit :

J'ai changé mon password par un plus court et avec moins de caractères spéciaux (javais des # / \, au final j'ai conservé l'@).

Suite ce changement j'ai effectué divers teste de configuration IP:PORT sur les fichiers config et j'ai enfin droit un "SUCCESS" 🤩.

[Sat Jan 23 15:05:28 UTC 2021] Logging into IP_du_NAS:PORT
[Sat Jan 23 15:05:28 UTC 2021] Getting certificates in Synology DSM
[Sat Jan 23 15:05:28 UTC 2021] Generate form POST request
[Sat Jan 23 15:05:28 UTC 2021] Upload certificate to the Synology DSM
[Sat Jan 23 15:05:42 UTC 2021] http services were restarted
[Sat Jan 23 15:05:42 UTC 2021] Success

Pour les modifications de port perso, voici les fichiers de config

  • account.conf
    LOG_FILE="/acme.sh/acme.sh.log"
    LOG_LEVEL=1
    
    AUTO_UPGRADE='1'
    
    #NO_TIMESTAMP=1
        
    USER_PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
    SAVED_OVH_AK='xxxxx'
    SAVED_OVH_AS='xxxxx'
    SAVED_OVH_CK='xxxxx'
    UPGRADE_HASH='xxxxx'
    
    SAVED_SYNO_Scheme='http'
    SAVED_SYNO_Hostname='172.17.0.1'
    SAVED_SYNO_Port='5000'
    SAVED_SYNO_Username='NEW_USER'
    SAVED_SYNO_Password='p@ssW0rd'
    SAVED_SYNO_DID=''
    SAVED_SYNO_Certificate='ACME_Wilcard_LE_DOCKER'

     

  • mydomain.com/mydomain.com.conf
    au final j'ai remplacer le port 5000 par mon port perso http
    et le hostname 172.17.0.1 par l'IP de mon NAS en local
    Le_Domain='ndd.tld'
    Le_Alt='*.ndd.tld'
    Le_Webroot='dns_ovh'
    Le_PreHook=''
    Le_PostHook=''
    Le_RenewHook=''
    Le_API='https://acme-v02.api.letsencrypt.org/directory'
    Le_Keylength='4096'
    Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/...'
    Le_LinkOrder='https://acme-v02.api.letsencrypt.org/acme/order/...'
    Le_LinkCert='https://acme-v02.api.letsencrypt.org/acme/cert/...'
    Le_CertCreateTime='1611254755'
    Le_CertCreateTimeStr='Thu Jan 21 18:45:55 UTC 2021'
    Le_NextRenewTimeStr='Mon Mar 22 18:45:55 UTC 2021'
    Le_NextRenewTime='1616352355'
    Le_DeployHook='synology_dsm,'
    SAVED_SYNO_Scheme='http'
    SAVED_SYNO_Hostname='IP_DE_MON_NAS'
    SAVED_SYNO_Port='MON_PORT_PERSO_HTTP'

Maintenant, je verrai dans 2 mois ce que ça donne et surtout merci pour l'aide.

Modifié par Karnak.Tharn
succes ^^
Posté(e)

Bonjour à tous,

Merci pour ce tuto qui a fini par marcher!

2 retours de mon côté :
- OVH n'a pas voulu de mon identifiant email et j'ai dû utilisé identifiant du type xxxxxxx-ovh
- Le mot de passe du compte admin créé au point 3B1 contenait des caractères speciaux qui empêchaient la connexion au DSM lors du déploiement automatique. Le mot de passe était généré automatiquement, caractères spéciaux inclus: &, #, 2 fois $, ^. Je suis donc passé en alphanumérique sans caractère spécial et là plus de problème!

Si ça peut aider quelqu'un!

Posté(e)

Bonjour,

Suite à quelques problèmes d'installation de certificat LE dans l'utilitaire Synology, où je suis obligé de créer un type AAAA et ouvrir l'IPV6 du NAS pour pouvoir installer correctement le certificat, je suis intéressé par votre méthode. D'abord, merci beaucoup pour ce tuto.

 

J'ai donc commencé le tuto et après la création des certificats (point D) où j'ai lancé le script avec le planificateur de tâches, il me manque les fichiers .cer (un peu comme dans le message de Karnak.Tharn un peu plus en avant sur ce post.

10.jpg.0ca07a97d9055c6894ad7f55f269f85a.jpg

Dans le fichier log, sur la dernière ligne j'ai ce messaage " Error removing txt for domain:_acme-challenge.mondomaine.fr"

J'ai aussi vérifier les zones DNS chez Ovh et j'ai bien une variable _acme-challenge.mondomaine.fr.  de type TEXT qui a été créée.

 

Merci par avance pour votre aide. 

Posté(e)
il y a 11 minutes, PatrickBt a dit :

Dans le fichier log, sur la dernière ligne j'ai ce messaage " Error removing txt for domain:_acme-challenge.mondomaine.fr"

J'ai aussi vérifier les zones DNS chez Ovh et j'ai bien une variable _acme-challenge.mondomaine.fr.  de type TEXT qui a été créée.

De grandes chances que les accès à l'API ne soient pas bons, en tout cas pas suffisants pour supprimer des enregistrements dans ta zone.

Posté(e)

Alors peu être un enregistrement d’avant qui est resté, supprime le et relance le script, si tu as encore la même erreur, alors c’est que tu as lors du tout premier point fait une coquille (un dédouble une lettre en mettant son domaine sur une ligne suffit, il faudra encore supprimé l’enregistrement dns encore et refaire l’api)

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.