Aller au contenu

[TUTO]Création d'un Certificat "wilcard" Let'sEncrypt avec la méthode "acme.sh"


oracle7

Messages recommandés

@Pinpon_112

Bonjour,

OK jusque là c'est parfait pour l'installation du Shell script acme.sh.

Mais que disent les 4 dernières lignes de messages qui ont été affichées sur le terminal après l''exécution de la commande "./acme.sh --issue --keylength 4096 ........" ?

J'espère que tu as conservé ce log écran.

Cordialement

oracle7😏

 

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Voilà :

Citation

[Tue Jul 21 14:39:03 CEST 2020] Your cert is in  /root/.acme.sh/ndd.net/ndd.net.cer 

[Tue Jul 21 14:39:03 CEST 2020] Your cert key is in  /root/.acme.sh/ndd.net/ndd.net.key 

[Tue Jul 21 14:39:03 CEST 2020] The intermediate CA cert is in  /root/.acme.sh/ndd.net/ca.cer 

[Tue Jul 21 14:39:03 CEST 2020] And the full chain certs is there:  /root/.acme.sh/ndd.net/fullchain.cer 

 

Lien vers le commentaire
Partager sur d’autres sites

@Pinpon_112

Bonjour,

Au moins maintenant tu sais où sont tes fichiers de certificat !

Cela dit, ce n'est absolument pas normal !

Tu as pourtant bien spécifié le répertoire de génération à prendre en compte "/volume1/Certs" mais tout ce passe comme si le script acme.sh n'en faisait qu'à sa tête et les envoie quand même dans le répertoire standard par défaut.

Le problème est que ce répertoire "/root/acme.sh" n'est pas stable dans le temps et qu'à la moindre màj de DSM, il sera réinitialisé et tes fichiers de certificat seront irrémédiablement perdus.

Aussi je t'invite expressément à les recopier dès maintenant dans le répertoire où ils devraient être càd "volume1/Certs/ndd.tld".

Maintenant en première approche, la seule explication qui vienne à l'esprit, serait une erreur de syntaxe dans la commande d'installation du script acme.sh.

Même si en apparence cela semble correct, :

Citation

root@xxx:/volume1/Certs/Acme_install/acme.sh-master# ./acme.sh --install --nocron --home "$ACME_HOME" --cert-home "$CERT_HOME" --accountemail "xxx@ndd.net"

tu as peut-être involontairement saisi un caractère invisible au niveau de la définition de la variable CERT_HOME ou au niveau "--cert-home "$CERT_HOME"". Cela arrive fréquemment lors de copier/coller, où l'on prend aussi ce type de caractères (un NL ou RC typiquement) ce qui rend la chaîne différente, du coup l'interprétation non correcte et l'utilisation de la valeur par défaut correspondante "/root/acme.sh/" dans ce cas précis.

Du coup, il serait peut-être plus sage de reprendre tout en faisant attention à ces fameux copier/coller afin de repartir sur des bases saines sinon je crains que tu n'ai par la suite d'autres déboires lors du prochain renouvellement si tu restes dans cet état. Enfin c'est toi qui voit ....

Cordialement

oracle7😏

 

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Donc si je te comprends bien, il vaut mieux recréer un certificat en recommençant tout de A à Z ?

Néanmoins, je peux sauter la partie de création avec l'API de OVH puisque j'ai gardé les valeurs de création.  Tu confirmes ?

Et j'avais effectivement fait du copié-collé.  J'essayerai de faire cela courant de semaine prochaine lorsque j'aurai plus de temps et je te tiens au courant.

Sinon, question subsidiaire, comment puis-je trouver ce dossier où se trouve actuellement les certificats ?

Lien vers le commentaire
Partager sur d’autres sites

@Pinpon_112

Bonjour,

il y a 4 minutes, Pinpon_112 a dit :

Donc si je te comprends bien, il vaut mieux recréer un certificat en recommençant tout de A à Z ?

Cela me semble plus sage.

il y a 5 minutes, Pinpon_112 a dit :

Néanmoins, je peux sauter la partie de création avec l'API de OVH puisque j'ai gardé les valeurs de création.  Tu confirmes ?

OUI, mais il te faudra repartir du §3.2 (export ce ces clés)

Pour les C/C passes temporairement par un fichier TXT intermédiaire où tu colleras, pour t'assurer de ce que tu as copié.

il y a 8 minutes, Pinpon_112 a dit :

comment puis-je trouver ce dossier où se trouve actuellement les certificats ?

Tu as donné toi même la réponse :

il y a 52 minutes, Pinpon_112 a dit :

[Tue Jul 21 14:39:03 CEST 2020] Your cert is in  /root/.acme.sh/ndd.net/ndd.net.cer 

[Tue Jul 21 14:39:03 CEST 2020] Your cert key is in  /root/.acme.sh/ndd.net/ndd.net.key 

[Tue Jul 21 14:39:03 CEST 2020] The intermediate CA cert is in  /root/.acme.sh/ndd.net/ca.cer 

[Tue Jul 21 14:39:03 CEST 2020] And the full chain certs is there:  /root/.acme.sh/ndd.net/fullchain.cer 

Cordialement

oracle7😏

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Bonjour,

Ca y est, j'y suis arrivé.  Tout est en ordre pour le NAS 😃

J'ai également déployé le certificat dans le routeur.  Par contre, je reste en mode non sécurisé.  Ce que je ne comprend pas, c'est que si je clique sur le petit cadenas ouvert (remplacé par 'non sécurisé' sur Chrome), je peux voir certificat non valide.  Si je clique sur l'onglet certificat, il est mis certificat valide !!! (voir copie d'écran).  Pour le certificat, j'ai mis :

Clé privée : ndd.net.key
Certificat : ndd.net.cer
Certificat intermédiaire : ca.cer en ayant supprimé la première ligne (retour).

C'est à rien n'y comprendre.  Sous Firefox, c'est pareil.

Capture d’écran 2020-07-25 à 09.30.01.png

Capture d’écran 2020-07-25 à 09.30.11.png

Lien vers le commentaire
Partager sur d’autres sites

@Pinpon_112

Bonjour,

On va regarder si ton certificat est bien pris en compte :

Sous Firefox après avoir vider le cache (effacer les données dans options vie privée) tu te connectes à ton NAS, tu cliques sur le cadenas à gauche de la barre d'URL et sur la ligne "connexion sécurisée" tu cliques sur le popup pour afficher les détails de la connexion et enfin tu cliques sur "plus d'informations".

  • Est-ce bien ton certificat ?
  • Quelle est alors la date d'expiration affichée ?
  • Correspond-t-elle à celle affichée dans DSM pour ton certificat ?

Cordidalement

oracle7😏

Lien vers le commentaire
Partager sur d’autres sites

@Pinpon_112

Effectivement, c'est pas gagné !

????? C'est comme si tu n'avais pas de certificat. Il y a vraiment un truc pas clair.

Donc pour faire propre, je crois qu'il faut vraiment que tu reprennes toute la procédure de création du certificat comme convenu.

Mais avant pour éviter toutes interférences, je te suggère de faire un peu de ménage en supprimant carrément dans DSM les certificats existants que tu aurais créés précédemment (sauf ceux en xxxx.synology.me si tu en as) + suivi d'un un arrêt propre et redémarrage du NAS.

Reviens ensuite pour me dire ce qu'il en est. (à la fin n'oublies pas de configurer ton nouveau certificat pour les services).

Cordialement

oracle7😏

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Le 30/05/2020 à 10:35, oracle7 a dit :

/usr/local/share/acme.sh$ ./acme.sh --issue --keylength 4096 -d "$CERT_DOMAIN" -d "$CERT_WDOMAIN" --dns "$CERT_DNS"

[Sun May 24 22:42:07 CEST 2020] Create account key ok.

[Sun May 24 22:42:07 CEST 2020] Registering account

[Sun May 24 22:42:08 CEST 2020] Registered

[Sun May 24 22:42:08 CEST 2020] ACCOUNT_THUMBPRINT='l7IOxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfro'

Je suis dans cette étape.  LA création du certificat.  J'ai fait tout correctement mais en fait, chez moi, il n'y a pas la partie ci-dessus.  Je commence directement à ceci :

Citation

/usr/local/share/acme.sh# ./acme.sh --issue --keylength 4096 -d "$CERT_DOMAIN" -d "$CERT_WDOMAIN" --dns "$CERT_DNS"

[Sat Jul 25 12:43:45 CEST 2020] Creating domain key

 

Lien vers le commentaire
Partager sur d’autres sites

@Pinpon_112

Bonjour,

Je pense que c'est parce acme.sh a détecté que ton compte existait déjà au travers du fichier "/usr/local/share/acme.sh/account.conf". apriori il n'y-a pas de problème tu peux continuer.

Pour ton information de viens de mettre en ligne une nouvelle version du TUTO. C'est tout frais !!!

Je t'invites donc à la lire attentivement pour voir les changements apportés à la procédure.

Cordialement.

oracle7😏

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

il y a 38 minutes, oracle7 a dit :

Je pense que c'est parce acme.sh a détecté que ton compte existait déjà au travers du fichier "/usr/local/share/acme.sh/account.conf". apriori il n'y-a pas de problème tu peux continuer.

Oui, sauf que :

1) si je veux faire une instal toute propre comme tu me le proposais plutôt, je devrais effacer ce dossier/fichiers.  Mais comment y arriver pour le faire ?

2) J'ai donc refais toute la procédure, tout à marché comme chaque fois mais maintenant, mon certificat est bien installé mais la connexion n'est pas sécure (cadenas ouvert) sous Chrome et Firefox.

il y a 40 minutes, oracle7 a dit :

Pour ton information de viens de mettre en ligne une nouvelle version du TUTO. C'est tout frais !!!

Un tout grand merci à vous deux !  Je viens d'y jeter un oeil et j'ai déjà un petit problème.  Comment est-ce que je fais pour installer le script Python car je suis sous Mac et je ne peux utiliser WinSCP ?

Lien vers le commentaire
Partager sur d’autres sites

@Pinpon_112

Bonjour,

il y a 1 minute, Pinpon_112 a dit :

je devrais effacer ce dossier/fichiers.  Mais comment y arriver pour le faire ?

Je t'en ai donné le chemin précédemment, donc tu passes par ta session SSH dans un terminal et tu tapes ceci :

  • "rm -fi /usr/local/share/acme.sh/account.conf"
  • puis un "cd /usr/local/share/acme.sh"
  • et enfin un  "ls -al" pour vérifier qu'il n'est plus là.

Attention en supprimant ce fichier il te faut réinstaller "acme.sh" !!!! C'est impératif.

il y a 18 minutes, Pinpon_112 a dit :

mais la connexion n'est pas sécure (cadenas ouvert) sous Chrome et Firefox.

As-tu vidé le cache du navigateur et relancer une connexion au NAS ? après, cela devrait le faire ?

il y a 9 minutes, Pinpon_112 a dit :

Comment est-ce que je fais pour installer le script Python car je suis sous Mac et je ne peux utiliser WinSCP ?

  • Copies le script Python provisoirement dans un de tes dossiers partagés sur le NAS (par ex dans "/volume1/music") depuis le finder du Mac.
  • Ensuite dans une fenêtre Terminal avec une session SSH sous "root", tu le transferts dans "volume1/Scripts" avec une commande "cp" :
  • "cp -p /volume1/music/acme_renew.py /volume1/Scripts"
  • "cd /volume1/Scripts"
  • "ls -al" pour vérifier qu'il est bien là.

C'est pas plus compliqué que cela ...

Cordialement

oracle7😏

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Bon , je commence à me débrouiller dans le terminal.

J'avais à l'époque fait une erreur dans un dossier.  J'avais appelé le dossier local en locl.  Je suis donc dans ce dernier dossier pour faire mes manoeuvres pour le cas où il y a une erreur...  Ce que je n'arrive pas à faire, c'est supprimer un dossier avec des fichiers.  Actuellement, je dois d'abords vider le dossier fichier par fichier avant de pouvoir supprimer le dossier en question et ainsi de suite.  Le problème, lorsqu'il n'y a que 2-3 fichiers, ça va mais lorsqu'ils sont environ 40, c'est tout de suite plus long et fastidieux.  As-tu une commande pour supprimer un dossier non vide ?  rm dir ne fonctionne pas.

Lien vers le commentaire
Partager sur d’autres sites

@Einsteinium

Bonjour,

il y a une heure, Einsteinium a dit :

Deux correction à faire, côté api ovh d’abord, l’ip fixe du serveur pour plus de sécurité.

Ton assertion est trop synthétique pour ma petite tête. Désolé mais si toi tu te comprends, moi je ne comprends pas ce que tu veux dire. Peux-tu STP être plus explicite et détailler ...

il y a une heure, Einsteinium a dit :

Second point... le export de l’user et du password admin en variable... (comme les clés ovh de l’api au passage), faudrait passé par un config avec droit restreint

Pareil que ci-dessus, sachant que l'export de l’Id du user et de son password n'ont que la durée de vie de la session SSH. Je vois pas où est alors le problème ?

Par ailleurs, pourquoi selon toi il faudrait remettre en cause les indications fournies sur Github (que j'ai cité en référence au passage dans mon TUTO)  ici « Synology DSM deployhook » ?

Qu'est que tu appelles un "config avec droit restreint" ????

Encore une fois soit plus explicite dans tes remarques, je veux bien les prendre en compte mais encore faut-il que je les comprenne.

Cordialement

oracle7😏

 

Modifié par oracle7
Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Gros problème, enfin pour moi, mais j'espère que ce n'est pas trop grave quand même...

j'ai commencé la création des certificats et voilà ce que j'ai obtenu :

Citation

/usr/local/share/acme.sh# ./acme.sh --issue --keylength 4096 -d "$CERT_DOMAIN" -d "$CERT_WDOMAIN" --dns "$CERT_DNS"

[Sat Jul 25 16:00:54 CEST 2020] Create account key ok.

[Sat Jul 25 16:00:54 CEST 2020] Registering account

[Sat Jul 25 16:00:56 CEST 2020] Registered

[Sat Jul 25 16:00:56 CEST 2020] ACCOUNT_THUMBPRINT='xxxxxxx-c'

[Sat Jul 25 16:00:56 CEST 2020] Creating domain key

[Sat Jul 25 16:01:03 CEST 2020] The domain key is here: /volume1/Certs/xxx.net/xxx.net.key

[Sat Jul 25 16:01:03 CEST 2020] Multi domain='DNS:xxx.net,DNS:*.xxx.net'

[Sat Jul 25 16:01:04 CEST 2020] Getting domain auth token for each domain

[Sat Jul 25 16:01:05 CEST 2020] Create new order error. Le_OrderFinalize not found. {

  "type": "urn:ietf:params:acme:error:rateLimited",

  "detail": "Error creating new order :: too many certificates already issued for exact set of domains: *.xxx.net,xxx.net: see https://letsencrypt.org/docs/rate-limits/",

  "status": 429

}

[Sat Jul 25 16:01:05 CEST 2020] Please add '--debug' or '--log' to check more details.

[Sat Jul 25 16:01:05 CEST 2020] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh

Edit : Bon, j'ai compris que j'ai déjà créé trop de certificats pour le moment.  Si je me réfère au site crt.sh, je vois que j'ai 8 création pour aujourd'hui, 2 pour le 21/7 et encore 2 pour le 7/7.  Quand pourrai-je recommencer ?  Je ne comprend pas très bien avec leur limite.

Modifié par Pinpon_112
Lien vers le commentaire
Partager sur d’autres sites

@Pinpon_112

Bah oui,  désolé pour toi mais force est de constater ( le message est clair) que tu as atteint la limite de duplication de certificat pour un même domaine "ndd.tld" fixée par LE à 5 cartouches par semaine. Regardes le lien fourni dans ton message d'erreur.

Maintenant tu n'as pas d'autre choix que d'attendre une semaine ( donc pas avant Samedi 1er Août 2020 vers 16h00 minimum) pour pouvoir relancer la génération de ton certificat

Je sais, cette limitation est une vraie plaie  et il faut être parcimonieux dans la création de certificats. Maintenant tu peux quand même le faire mais pour un autre domaine et pas l'actuel.

Cordialement

oracle7😏

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

J'ai testé le python et j'ai du le lire pour comprendre un élément important : le nommage du répertoire Certs qui était finalement utilisé par les scripts.

J'ai renommé Certs en certs afin qu'il n'y ait pas de majuscule et j'y ai intégré le répertoire scripts.

J'ai modifié le account.conf pour être cohérent...

Par contre, j'ai exécuté le script python mais il m'annonce que la procédure n'a pas été exécuté car le certificat est trop récent (ce qui est logique) mais j'ai une question même deux.

- scriptdir    : /volume1/certs/Acme_renew
-- log          : True
-- test         : False
-- clean        : False

Voici ce que j'ai dans le mail de supervision mais si je suis la logique du script et le paramètre log à true (-l), je devrai tout de même avoir un fichier de log. Mais je constate que je n'ai pas le répertoire Acme_renew qui est censé être créé par le python. Du coup, pourquoi je n'ai pas ces deux éléments ?

-- Ancien certificat par DEFAULT, a renouveller : Yan5LF

A quoi correspond Yan5LF ?

PS : Attention aux fautes dans le script python.

- Confirmer l'effacement des ces fichiers (Y/n) : des devient de

- renouveller : un l en trop

Modifié par kerod
Lien vers le commentaire
Partager sur d’autres sites

@kerod

Bonjour,

il y a 3 minutes, kerod a dit :

le nommage du répertoire Certs qui était finalement utilisé par les scripts.

Tu peux préciser ta pensée STP ? "... utilisé par les scripts" les quels ?

il y a 5 minutes, kerod a dit :

J'ai renommé Certs en certs afin qu'il n'y ait pas de majuscule et j'y ai intégré le répertoire scripts.

Si c'est mieux pour toi, nous on a préféré séparer les genres ... C'est plus propre informatiquement parlant.

il y a 6 minutes, kerod a dit :

J'ai modifié le account.conf pour être cohérent...

Méfies toi quand même en modifiant par toi même ce fichier, si tu est sûr de toi ... car il est géré par acme.sh et au final celui-ci pourrait ne plus y retrouver ses petits ! Donc ne viens par t'étonner des potentiels dysfonctionnement.

il y a 10 minutes, kerod a dit :

je devrai tout de même avoir un fichier de log. Mais je constate que je n'ai pas le répertoire Acme_renew qui est censé être créé par le python. Du coup, pourquoi je n'ai pas ces deux éléments ?

C'est étonnant car lors des tests, je supprimais systématiquement ce fichier acmelog et il était récréé à chaque exécution soit en version que j’appellerai "light" soit en version très complète en cas de problème. Je n'ai jamais eut ton problème. Mais peut-être que cela vient de ton renommage de répertoires ??? si tu modifies les choses qui te sont proposées, il faut être cohérent jusqu'au bout et vérifier que cela n'aura pas d'impact ...

il y a 13 minutes, kerod a dit :

A quoi correspond Yan5LF ?

A chaque création d'un certificat les fichiers relatifs à ce certificat sont archivés en interne par DSM dans un répertoire avec un nom "aléatoire" (pour toi cela a été "Yan5LF").

il y a 17 minutes, kerod a dit :

PS : Attention aux fautes dans le script python

Belle assertion mais tu ne crois pas que ce serait mieux de les citer précisément et nous dire sur quoi elles portent. On ne peux pas les deviner et les corriger si elles sont effectivement avérées.

Cordialement

oracle7😏

Lien vers le commentaire
Partager sur d’autres sites

Citation

Tu peux préciser ta pensée STP ? "... utilisé par les scripts" les quels ?

Comme je l'ai déjà dit, account.conf est le seul que j'ai modifié et c'est le seul.

Citation

C'est plus propre informatiquement parlant.

Informatiquement parlant, je ne partage pas. Je préfère pour une seule et même fonctionnalité (génération de certificat que tout soit dans un même package (pour parler informatique ment parlant). Je suis dans le développement depuis 10 ans et une fonctionnalité est constituée d'un package qui contient les scripts qui y font référence.

Citation

Méfies toi quand même en modifiant par toi même ce fichier, si tu est sûr de toi ... car il est géré par acme.sh et au final celui-ci pourrait ne plus y retrouver ses petits ! Donc ne viens par t'étonner des potentiels dysfonctionnement.

Figure-toi que j'ai testé avec le script acme.sh et donc la première version du tutoriel et je n'ai pas eu d'erreur.

Citation

C'est étonnant car lors des tests, je supprimais systématiquement ce fichier acmelog et il était récréé à chaque exécution soit en version que j’appellerai "light" soit en version très complète en cas de problème. Je n'ai jamais eut ton problème. Mais peut-être que cela vient de ton renommage de répertoires ??? si tu modifies les choses qui te sont proposées, il faut être cohérent jusqu'au bout et vérifier que cela n'aura pas d'impact ...

Je ne parle pas du fichier .log mais du répertoire. Soit le répertoire est créé tout seul comme indiqué dans le tutoriel et il faut que ce soit le cas, soit on ne le précise pas. 

Je ne vois aucun mkdir du Acme_renew. La seule chose que je vois est en effet un touch qui génère le fichier de log et non le répertoire en lui-même.

Citation

Belle assertion mais tu ne crois pas que ce serait mieux de les citer précisément et nous dire sur quoi elles portent. On ne peux pas les deviner et les corriger si elles sont effectivement avérées.

Je t'invite à relire mon précédent post.

EDIT

 

En utilisant le -t, on voit que les logs sont bien là et que le répertoire aussi du coup. Par contre, le acme_log vide ça ne sert à rien à moins que ce soit parce qu'on est en mode manuel et test.

PS C'est dommage d'avoir des logs uniquement quand la génération se fait. Pour moi on devrait avoir les deux cas (ex du certificat déjà existant et valide).

Modifié par kerod
Lien vers le commentaire
Partager sur d’autres sites

@kerod

il y a 18 minutes, kerod a dit :

Je ne vois aucun mkdir du Acme_renew. La seule chose que je vois est en effet un touch qui génère le fichier de log et non le répertoire en lui-même.

Je ne suis pas spécialiste de Python mais de ce que je vois moi dans le script :

  • ligne41 : le chemin vers le dossier Acme_renew est défini
  • ligne 351 : le répertoire correspondant est effectivement créé avec un "os.makedirs"
il y a 19 minutes, kerod a dit :

Je t'invite à relire mon précédent post.

Ton post a été édité APRES que j'y ai accédé pour le consulter et il n' y avait pas encore les fautes en question, d'où ma remarque.

Cordialement

oracle7😏

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Je ne sais pas si tu as vu mes derniers commentaires, donc je les remets ici.

Citation

 

En utilisant le -t, on voit que les logs sont bien là et que le répertoire aussi du coup. Par contre, le acme_log est vide à moins que ce soit parce qu'on est en mode manuel et test.

PS C'est dommage d'avoir des logs uniquement quand la génération se fait. Pour moi on devrait avoir les deux cas (ex du certificat déjà existant et valide).

 

Qu'en penses-tu ?

Lien vers le commentaire
Partager sur d’autres sites

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.