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

Bonjour,

Il y a 12 heures, Einsteinium a dit :

sinon tu le supprimes et recré, cela sera bon

Pour info, j'avais aussi commencer par faire cela mais sans résultat, à chaque màj de l'image par watchtower j'ai le warning.

Maintenant ce que j'en dit ... Ce n'est qu'un constat de fait.

Cordialement

oracle7😉

Posté(e)

Hello tout le monde,


J'ai deja mis en place un renouvellement de wildcard via acme en utlisant ce tuto il y a quelques temps.

Ayant changé de NAS, j'aimerai en faire autant sur le nouveau. Seulement, je suis dessu depuis deux jours et rien à faire, Je n'arrive pas à faire marcher le tout.

J'ai bien généré le triplet de clefs chez ovh (ca fait plus de 10 fois maintenant)

Voici en pièce jointe le ficher de conf et le fichier de log.

Voici la commande que je lance via le task scheduler en "root" après avoir recréé le container avec la commande du tuto (j'ai rajouté dans le docker run une variable pour être dans la bonne timezone et j'ai renommé le container de "Acme" vers "acme")

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

J'ai cette erreur 22 qui n'arrête pas de revenir "This service does not exist".

Est ce que quelqu'un aurait une idée ce de qui pourrait ne pas fonctionner ici ? Je n'ai plus de pistes de mon côté...

J'espère qu'une bonne âme de la communauté pourra me sortir de cette galère ...

 

account.conf acme.sh.log

Posté(e)

@ildrad

Bonjour,

Tu as dans ton log cette erreur :

[Tue Jan 31 10:35:58 CET 2023] Error add txt for domain:_acme-challenge.monsiteweb.com

Du coup, il te faut nettoyer(supprimer) tout enregistrement de type TXT nommé "_acme-challenge.monsiteweb.com" dans ta zone DNS chez OVH. Ces enregistrement sont créés et supprimés automatiquement quand tout se passe bien mais ils restent et bloquent la procédure (d'où l'erreur) quand cela s'est mal passé une fois.

Cordialement

oracle7😉

Posté(e)

Hello oracle7,

Merci por ta réponse plus que rapide.

Malheuresement ma zone DNS n'a pas trace de ce record dans le GUI, ni dans la version texte des records et pas de traces de ce record sur les tools du net.

C'est vraiment surprenant ce message d'erreur, comme si ovh refusait d'update la zone DNS alors que tout est bon au niveau des droits pour se connecter et au vue des droits de l'app ovh créé ca devrait marcher au vue du nombre de personne les ayant utilisés...

image.thumb.png.f1c4294c778f8c44a3f9f53f4d4fc748.pngimage.thumb.png.f173c4391058b062b236f742b981138f.png

Posté(e) (modifié)

@ildrad

Bonjour,

Dans le log tu as aussi cette erreur : "invalid domain".

Du coup, vérifies partout où tu l'as saisi, la syntaxe de ton domaine. Attention aux copier/coller car tu peut très bien prendre en même temps un caractère invible à l'écran mais dont la présence rend le nom de domaine différent. Donc que de la saisie et pas de C/C ! idem pour et dans les MdP (avec en plus PAS de caractères spéciaux/exotiques).

Astuce : Pour avertir un membre de ta réponse, tu tapes dans ton message "@" + les premiers caractères de son pseudo. Dans le popup qui apparaît tu cliques alors sur le pseudo recherché et il s'affiche sur fond bleu dans ton texte. Ainsi ton interlocuteur est informé/notifié de ta réponse sinon il ne voit rien sauf à rebalayer en arrière tous les messages (ce que peu de monde fait).

Cordialement

oracle7😉

 

Modifié par oracle7
Posté(e)

Hello @oracle7,

J'ai refais tout le processus de la generation des clefs chez OVH à la requete en tappant à la main le nom de domaine et en le reverifiant les entrées pour les erreurs de typo, Same story...

J'ai relancé le container avec la time zone de base, pareil...

acme.sh.log

Posté(e)

Bonjour, Bonsoir, à tous,

Je reviens vers vous car étant un peu malade je m'arrache les cheveux sur un problème qui n'en sera peut-être pas un pour vous. Ou est l'erreur ??? 

J'ai voulu appliquer ce tuto une énième fois mais cette fois pas sans mal ! 

C'est la 3ème fois que je souhaites automatiser le renouvellement sur mon nas d'un certificat mais cela ne veut pas.

Merci d'avance pour vos lumières.

Voici le mail d'erreur que j'ai en voulant l'appliquer :

 

Le planificateur de tâches a terminé une tâche déclenchée.

Tâche : acme unique
Heure de début : Wed, 01 Feb 2023 02:01:00 GMT
Heure d'arrêt : Wed, 01 Feb 2023 02:01:11 GMT
État actuel : 1 (Interrompu)
Sortie/erreur standard :
WARNING: Error loading config file: .dockercfg: $HOME is not defined
[Wed Feb 1 01:01:01 UTC 2023] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Wed Feb 1 01:01:01 UTC 2023] Create account key ok.
[Wed Feb 1 01:01:01 UTC 2023] Registering account: https://acme-v02.api.letsencrypt.org/directory
[Wed Feb 1 01:01:02 UTC 2023] Registered
[Wed Feb 1 01:01:02 UTC 2023] ACCOUNT_THUMBPRINT='VALEUR MASQUE AU CAS OU'
[Wed Feb 1 01:01:02 UTC 2023] Creating domain key
[Wed Feb 1 01:01:08 UTC 2023] The domain key is here: /acme.sh/nddmasqueaucasou.tld/nddmasqueaucasou.tld.key
[Wed Feb 1 01:01:08 UTC 2023] Multi domain='DNS:nddmasqueaucasou.tld,DNS:*.nddmasqueaucasou.tld'
[Wed Feb 1 01:01:08 UTC 2023] Getting domain auth token for each domain
[Wed Feb 1 01:01:09 UTC 2023] Getting webroot for domain='nddmasqueaucasou.tld'
[Wed Feb 1 01:01:09 UTC 2023] Getting webroot for domain='*.nddmasqueaucasou.tld'
[Wed Feb 1 01:01:10 UTC 2023] Adding txt value: VALEUR MASQUE AU CAS OU for domain: _acme-challenge.nddmasqueaucasou.tld
[Wed Feb 1 01:01:10 UTC 2023] Using OVH endpoint: ovh-eu
[Wed Feb 1 01:01:10 UTC 2023] Checking authentication
[Wed Feb 1 01:01:10 UTC 2023] Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 22
[Wed Feb 1 01:01:10 UTC 2023] error {"message":"This call has not been granted","httpCode":"403 Forbidden","errorCode":"NOT_GRANTED_CALL"}
[Wed Feb 1 01:01:10 UTC 2023] The consumer key is invalid: VALEUR MASQUE AU CAS OU   (pourtant c'est la bonne CK copié directement j'ai fait une nouvelle demande API OVH)
[Wed Feb 1 01:01:10 UTC 2023] Please retry to create a new one.
[Wed Feb 1 01:01:10 UTC 2023] Error add txt for domain:_acme-challenge.nddmasqueaucasou.tld
[Wed Feb 1 01:01:10 UTC 2023] Please check log file for more details: /acme.sh/acme.sh.log


De VALEUR MASQUE AU CAS OU

Posté(e) (modifié)

@ildrad

Bonjour,

Pour ton info, il n'est pas utile de refaire tes clés OVH systématiquement. Le même jeu de clé reste valable si tu n'as pas d'erreurs à ce niveau.

Tu peux au passage faire le "ménage" chez OVH dans tes clés inutilisées. Pour ce faire :

Supprimer des clés API :
•	Se connecter sur OVH ici : https://api.ovh.com/console/ (avec le compte -ovh, pas l'@eMail)
•	Aller sur : https://api.ovh.com/console/#/me/api/application#GET et cliquer sur le bouton « execute »
•	On obtient la liste des ID d’applications API déjà créées
•	Dans https://api.ovh.com/console/#/me/api/application/%7BapplicationId%7D#GET saisir/coller l’ID dans le champ « applicationId » puis « execute »
•	Pour supprimer l’application : aller dans : https://api.ovh.com/console/#/me/api/application/%7BapplicationId%7D#DELETE et saisir/coller l’ID dans le champ « applicationId » puis « execute ».

A l'aide du fichier docker-compose décrit au point "Cbis" du TUTO, supprimes complétement ton conteneur avec "docker-compose down" et recrée-le avec "docker-compose up -d".

Reprends ensuite la procédure au point D après avoir vérifier tes enregistrements TXT chez OVH comme expliqué précédemment.

Cordialement

oracle7😉

 

@Capitaine ad hoc

Bonjour,

Dans ton log, le message est clair : "[Wed Feb 1 01:01:10 UTC 2023] The consumer key is invalid", il te faut reprendre la création de clé API chez OVH en étant très rigoureux ! le TUTO est parfaitement explicite sur le processus à suivre.

Au passage, tu peux aussi faire le ménage dans tes clés inutilisées avec la procédure que j'ai donné précédemment à @ildrad.

Enfin quand tu copies tes clés dans ton fichier account.conf assures-toi de ne pas copier de caractères invisibles du style retour à la ligne ou fin de ligne. Passes par l'intermédiaire d'un éditeur de texte pour t'en assurer. Au pire resaisis les à la main ...

Cordialement

oracle7😉

Modifié par oracle7
Posté(e)

Hello @oracle7,

J'ai fait le menage dansmes clefs OVH (merci pour le guide au passage) et supprimer le docker.

J'ai refait l'ensemble des étapes à la lettre.

Infructueux, même erreur que @Capitaine ad hoc. J'ai aussi poussé la capture d'ecran de la génération du set de clefs pour valider que la consumer key est bien la bonne.
image.png.1b6d316cbb0b0c3afbed50a81763643a.png

image.png.4a85abd67590dbd55b33c7b2999ffade.png


image.png.ffebd8a221b5397b66767d3b29c5ef5e.png

Meric de prendre le remps de m'aider

Arnaud

Posté(e)

@ildrad

Bonjour,

Je ne comprends pas ce qui se passe, tu sembles pourtant procéder correctement.

Désolé, mais je ne vois pas ce qui "coince". Peut-être que @Einsteinium aura une idée ?

Au passage, attention tu n'as droit qu'à 5 tentatives de création/renouvellement de certificat Let'sEncrypt par semaine calendaire. Au delà tu seras bloqué par LE et tu devras attendre une semaine calendaire à compter de la dernière tentative, avant de pouvoir recommencer.

Cordialement

oracle7😉

 

Posté(e) (modifié)

Hello @oracle7,

Merci pour ton aide.

Merci pour le conseil sur le quota. J'ai deja tapé la limite, il est possible de faire 5 essais par heure maitenant donc on a le loisir de bien tester ;).
Même si pour le coup ca ne m'a pas beauoup aidé 😄

C'est comme si le docker avait revert la correction faite il y a 1 ou 2 ans :

 

Modifié par ildrad
Posté(e)

@ildrad

Bonjour,

A tout hazard, tu as bien créé ton fichier account.conf avec un éditeur de texte en UTF8 et pas sous Windows ?

Sinon, Windows laisse trainer dans le fichier des fins de lignes et/ou retours chariots qui sont mal interprétés et cela met la cata sous acme.

A vérifier donc ...

Cordialement

oracle7😉

Posté(e) (modifié)
Il y a 8 heures, oracle7 a dit :

@Capitaine ad hoc

Dans ton log, le message est clair : "[Wed Feb 1 01:01:10 UTC 2023] The consumer key is invalid", il te faut reprendre la création de clé API chez OVH en étant très rigoureux ! le TUTO est parfaitement explicite sur le processus à suivre.

Au passage, tu peux aussi faire le ménage dans tes clés inutilisées avec la procédure que j'ai donné précédemment à @ildrad.

Enfin quand tu copies tes clés dans ton fichier account.conf assures-toi de ne pas copier de caractères invisibles du style retour à la ligne ou fin de ligne. Passes par l'intermédiaire d'un éditeur de texte pour t'en assurer. Au pire resaisis les à la main ...

Salut à tous,

Pour le coup j'ai suivi tes recommandations @oracle7 mais ce fut peine perdu ! 

reprendre la création de clé API chez OVH en étant très rigoureux  fait

 

tu peux aussi faire le ménage dans tes clés inutilisées avec la procédure que j'ai donné précédemment à @ildrad fait

 

Au pire resaisis les à la main ... fait

Toujours la même erreur je vais ajouter des infos qui vont peut-être pointé un problème de faisabilité ... 

J'ai déjà réalisé ce tuto sur mon nas pour deux autres domaines et également sur d'autres nas. 

La particularité ce coup-ci c'est que j'ajoute donc un 3ème conteneur acme mais pour un domaine qui n'est pas sur le même compte OVH que les 2 autres. Cela a-t-il son incidence ? 

Petite question aussi sur cette commande que l'on exécute une fois :

docker exec Acme3 (c'est le nom du conteneur ? du coup moi c'est le 3ème je l'ai simplement appelé Acme3 et il est dans /docker/Acme3/) sh -c "acme.sh --issue --keylength 4096 -d 'ndd.tld' -d '*.ndd.tld' --dns dns_ovh"  Je n'ai rien d'autre à modifier ici on est d'accord ?

 

Merci à vous.

Modifié par Capitaine ad hoc
Posté(e) (modifié)

@Capitaine ad hoc@oracle7

Je n'ai pas trouvé la raison du problème de CustomerKey.

Cependant en de mettant pas la ligne contenant cette CustomerKey dans l'account.conf :

- run la commande une fois => dans le log file il y a un lien pour request une CustomerKey à OVH

- Une fois le lien ouvert et la demande validée, la CustomerKey qui a été ajouté à account.conf à la fin du precedent run de la commande sera valide

Et là vous vous dites, problème résolu avec un workaround ! Je vous laisse remettre le champagne au frais pour le moment.

Au run suivant du script, l'authentification se passe bien, la demande démarre et acme part en sucette (en tout cas chez moi)

Du coup je suis allé voir comment se passe le maj sur mon ancien NAS : failed depuis avant hier matin.

Dernière version de acme il y a 3 jours en dev

image.thumb.png.0e2fd05b0d5f74f97bba2a14f5e4951f.png

Dernière version de prod : 3.0.5

image.png.281a0f431d5d5ef228d8c4b1b334d3bd.png

 

Pour en être sûr, je run Acme avec la vers 3.0.5 :

image.png.ccb4d0726894ed1feaf2a5ac40ca5d66.png

 

Et tout fonctionne correctement.

Pour faire court, forcez la version 3.0.5 et retester, ca devrait passer.

Bonne nuit !

Modifié par ildrad
Posté(e)

Bonjour tout le monde,
Peut on grâce à une ligne de commande (ou plusieurs) déployer le certificat sur le routeur (sur le même LAN)* ?


Ayant eu quelques problèmes pour accéder à mon chez moi via le SSL VPN de mon  RT...
Certificat périmé avec HSTS activé... obligé de trouver une parade pour me connecter !
Heureusement que l'appli Android autorise la connexion !

Merci !

Posté(e) (modifié)

@_DR64_

Bonjour,

Cela ne date pas d'hier, à ma connaissance il n'y a pas moyen de déployer le certificat LE généré sur le NAS autrement que par une importation manuelle des fichiers ndd.tld.key, ndd.tld.cer et l'intermédiaire ca.cer sur le Routeur. Ceci est valable pour d'éventuels autres NAS sur le même réseau local.

A noter aussi que parfois, avant de réimporter le fichier ca.cer, il faut l'éditer et supprimer le "saut de ligne" présent en tout début du fichier avec un éfiteur de texte sinon cela bloque l'importation.

Cordialement

oracle7😉

 

 

Modifié par oracle7
Posté(e) (modifié)

@ildrad

Bonjour,

A lire différentes "issues" sur gihtub, il semblerait à chaque fois que le conseil de résolution donné, est de forcer un update de acme à la version latest soit la version 3.0.6 mais justement il semblerait que ce soit cette version 3.0.6 qui vient d'être diffusée (il y a 3 ou 4 jours) qui déco... et pose problème. Le mieux est donc de rester en v3.0.5. Cela corrobore donc ton ananlyse.

  • Sous docker, il faut donc mettre à jour l'image d'acme :
    • Sous SSH, se placer dans le répertoire contenant le fichier docker-compose du conteneur acme et faire : docker-compose pull
    • Relancer le conteneur : docker-compose up -d --remove-orphans
    • Supprimez les images obsolètes : docker image prune
  • Si on a installé acme.sh en lignes de commandes :
    • Sous SSH faire une simple : acme.sh --upgrade

Cordialement

oracle7😉

Modifié par oracle7
Posté(e)

@MilesTEG1

Bonjour,

En SSH tu te connectes en root sur ton conteneur : docker exec -it acme /bin/sh

Puis tu fais : acme.sh --version

Ou en passant par portainer, tu ouvres la console du conteneur wlrZB3J.png

tu cliques sur le symbole >_, tu te connectes en root avec /bin/sh et tu tapes acme.sh --version

Cordialement

oracle7😉

 

Posté(e)

Question bête : dans l'éventualité où je remplacerais ma stack swag par un combo séparé d'applications (nginx, fail2ban, Crowdsec) car je n'utilise pas le fail2ban intégré à swag, comment puis-je réutiliser avec nginx les certificats fournis par Acme ?

Posté(e)

@MilesTEG1

Bonjour,

On en est au même point tout les deux, j'ai le même type de log si cela peut te rassurer ...

il y a 4 minutes, MilesTEG1 a dit :

comment puis-je réutiliser avec nginx les certificats fournis par Acme ?

Voilà une bonne question pour @.Shad.. Je soupçonne que ce soit possible mais au prix d'une convertion des fichier en ".pem", j'ai cru voir cela quelque part de mémoire ... Mais attendons sa réponse avisée.

Cordialement

oracle7😉

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.