Aller au contenu

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


oracle7

Messages recommandés

@oracle7

Tu n'es pas dans le développement pour dire ce genre de chose.

Ce n'est pas parce qu'on a un affichage console qu'un log dans un fichier est inutile. Si c'était le cas, les développeurs et les administrateurs systèmes ne le feraient pas...

 

Mais du coup je te retourne la question, si la console se suffit à elle-même, pourquoi générer un ficher vide ? Surtout que c'est le seul...

@oracle7

Pour revenir sur le tutoriel, je me rend compte qu'on dit dès le début de récupérer les sources git Acme_install que l'on décompresse.

Sauf erreur de ma part, on ne l'utilise plus son contenu après coup...

Dans le python, on voit qu'on utilise 

/usr/local/share/acme.sh/acme.sh

Et pas Acme_install/acme.sh-master/acme.sh

Cela voudrait-il dire qu'on peut supprimer le répertoire Acme_install ? J'ai peut-être lu en diagonal mais je ne vois pas de passage sur la suppression de ce répertoire.

Lien vers le commentaire
Partager sur d’autres sites

@kerod

il y a 6 minutes, kerod a dit :

Cela voudrait-il dire qu'on peut supprimer le répertoire Acme_install ?

En quoi il gêne ? on est pas à l'abri d'avoir besoin de réinstaller acme.sh du coup cette suppression n'a pas été envisagée. Donc inutile d'en parler dans le TUTO.

Cordialement

oracle7😏

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Citation

 on est pas à l'abri d'avoir besoin de réinstaller acme.sh du coup cette suppression n'a pas été envisagée.

Si on doit vraiment réinstaller, on a le chapitre "2. Installation du Shell script ‘acme.sh’"

Mais vu ta réponse j'en conclus que c'est possible...et que je peux le supprimer...et si un jour j'ai besoin de réinstaller, il me suffira de reprendre à l'étape 2.

Merci.

PS : Informatiquement parlant, cela s'appelle du nettoyage ou de la libération d'espace pour des packages qui ne sont plus utiles en l'état. Mais bon je m'arrête là. 

Cordialement.

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

@oracle7, @kerod,

  • je vois que les échanges sont nombreux. Donc je vais résumer ma position en ce qui concerne le script Python
    • je me suis lancé dans ce script afin de terminer l'automatisation du renouvellement de certificats. Au mois autant par défi que réelle nécessité (réaffecter les services une fois tous les 3 mois, ce n'est pas la mer à boire)
    •  je ne suis ni informaticien ni programmeur professionnel, donc j'accepte les critiques constructives (et surtout les conseils !) sur la façon de coder, pas de soucis .... et bien évidemment sur les erreurs typo si il y en a. Ainsi que les ajouts fonctionnels si nécessaire. Et il y a 6 mois je ne connaissais pas Python, ...... 🙂
    • suite à une première mouture, @oracle7 m'a donné une aide précieuse en acceptant de jouer les cobayes et en validant le script., et en me donnant un certain nombre de pistes à explorer. A cet occasion le script a fait un bond en avant ! encore merci @oracle7 qui est l'auteur de ce Tuto.
    • ensuite, on a décidé de le "lâcher", estimant son niveau "suffisant"
    • On savait très bien que des mains expertes allaient s'en emparer, et c'est tant mieux.
  • Sur les échanges ci-dessus que je n'ai parcouru qu'en diagonale (je suis en congés , pas chez moi, ..... peu de connexion, .... ) l'option log -l --log fait reference à l'option log de acme.sh. Pas de acme.sh => pas de log.  Si nécessaire, cela peut entrer dans ma todo list !
  • si quelqu'un souhaite améliorer le script, pas de problème non plus si c'est partagé. Je ne m'estime pas propriétaire exclusif. Par contre si vous me demandez de faire des évolutions, j'y répondrai dans la mesure de mes moyens.
  • comme je le disais, je ne reviendrai vraiment sur le forum que mi août. Je prendrai la liste des évolutions à réaliser à ce moment là. Merci de votre compréhension.

Bien à vous

Bruno78

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

@bruno78

Merci toutes ces explications.

Sur le sujet logs, je me suis en effet rendu compte que l’option était au final lié à acme.sh. Ce qui rend compréhension l’absence de contenu dans le fichier de logs. Il faut avouer que cela reste perturbant d’avoir un fichier de logs vide.

a défaut d’avoir les logs acme.sh, on pourrait rediriger la sortie console dans le même fichier. Ça peut être une idée.

Je n’ai pas analysé le code, je l’ai juste parcouru pour essayer de comprendre la logique de certaines choses qui me semblaient floues. Comme par exemple le mkdir. Ok c’est fait via le langage python mais du coup mon incompréhension (vu que j’ai fait très peu de Python) était sur le fait qu’on utilises le touch (commande SSG) pour le fichier de logs et l’inverse pour la création du dossier. C’est un choix, mais et c’est perturbant mais ça me va.

merci pour ce script 😉

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Bonjour,

J'ai une question.  Si tu te rappelle, les certificats du routeur n'étaient pas reconnus par ce dernier.  Je me connectait via l'adresse 192.168.x.y.  Ce matin, par un concours de circonstance, j'arrive à utiliser l'adresse xxx.ndd.net:8000 ou :8001.  Cela marche en WAN et LAN, plus simple.  Par contre, maintenant, le certificat LE est reconnu par le routeur.  Encore plus incompréhensible, il est bien valide sous Firefox et Chrome.  Par contre, pour le NAS, ce n'est pas le cas.

Une idée d'explication ?

Lien vers le commentaire
Partager sur d’autres sites

@Pinpon_112

Bonjour,

C'est bien tu avances ...

As-tu bien affecté ton certificat à tous les services (menu configurer) ?

Pour t'éviter de saisir le port, as-tu défini dans le reverse proxy une redirection par ex https://srm.ndd.tld vers http://@IPduRT:8000 ?

Cordialement

oracle7😏

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Il y a 5 heures, oracle7 a dit :

C'est bien tu avances ...

Merci, tout n'est pas désespéré... 😇

Il y a 5 heures, oracle7 a dit :

As-tu bien affecté ton certificat à tous les services (menu configurer) ?

Oui, mais le problème du NAS était autre, cfr plus haut.  Je devais donc refaire une install propre sur tes conseils mais lorsque j'ai voulu le faire, patatra, si tu te souviens, j'vais épuisé mon quota de certificat.  Je dois attendre au moins le we prochain.  

Il y a 5 heures, oracle7 a dit :

Pour t'éviter de saisir le port, as-tu défini dans le reverse proxy une redirection par ex https://srm.ndd.tld vers http://@IPduRT:8000 ?

OK, mais comment faire un reverse proxy sur le routeur ?  C'est quand même pas sur le NAS, auquel cas, de toute façon, je n'ai pas le routeur dans les applications du NAS.

Lien vers le commentaire
Partager sur d’autres sites

@Pinpon_112

Bonjour,

il y a 22 minutes, Pinpon_112 a dit :

OK, mais comment faire un reverse proxy sur le routeur ?  C'est quand même pas sur le NAS, auquel cas, de toute façon, je n'ai pas le routeur dans les applications du NAS.

Peu importe, avec la redirection que je t'ai indiquée précédemment que tu rentres dans le reverse proxy du NAS tu pourras accéder à ton routeur en tapant par ex htpps://srm/ndd.tld tout simplement. C'est pas plus compliqué.

Dans le même genre avec une redirection https://monMac.ndd.tld vers http://@IPmonMac (sans port) tu accèderas à ton Mac sur le réseau local. Tu me suis ? (il te faut bien sur aussi un CNAME pour monMac.ndd.tld dans ta zone DNS du NAS et du registar)

Cordialement

oracle7😏

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Bonjour Oracle,

J'ai procédé à la création propre des nouveaux certificats.  Tout à fonctionner correctement et j'ai installé les certificats selon ta procédure.  Problème, si je me connecte via Firefox, ce n'est toujours pas sécurisé (voir copie d'écran ci-dessous (routeur en prenant les certificats du NAS et NAS).  Pour le routeur, c'est installé.  Pour le renouvellement, j'ai pu installe le script Python comme tu me l'a expliqué.  Un grand merci.

Par contre, il semble qu'il y ait un autre problème, le dossier Certs est bien visible dans le Finder et dans File Station.  Est-ce normal ?

Capture d’écran 2020-08-04 à 12.23.39.png

Capture d’écran 2020-08-04 à 12.28.24.png

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

@Pinpon_112

Bonjour,

il y a une heure, Pinpon_112 a dit :

Problème, si je me connecte via Firefox, ce n'est toujours pas sécurisé

  • As-tu vider le cache de Firefox et quitter/redémarrer celui-ci ?
  • As-tu bien affecté ton certificat aux services (menu Sécurité / Certificat / Configurer) ?
  • As-tu redémarré ton routeur et ton NAS ?
il y a une heure, Pinpon_112 a dit :

le dossier Certs est bien visible dans le Finder et dans File Station.  Est-ce normal ?

Eh bien non vu que ce n'est pas un dossier partagé au sens Synology. Il devrait être comme le dossier "volume1/Scripts" càd invisible depuis le Finder. Comme je ne suis pas sur Mac, difficile de t'aider. Regardes le paramétrage d'affichage des dossiers dans le Finder ???

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

@oracle7

Il y a 3 heures, oracle7 a dit :

As-tu vider le cache de Firefox et quitter/redémarrer celui-ci ?

Oui

Il y a 3 heures, oracle7 a dit :

As-tu bien affecté ton certificat aux services (menu Sécurité / Certificat / Configurer) ?

Oui

Il y a 3 heures, oracle7 a dit :

As-tu redémarré ton routeur et ton NAS ?

Non Oui

Il y a 3 heures, oracle7 a dit :

Eh bien non vu que ce n'est pas un dossier partagé au sens Synology. Il devrait être comme le dossier "volume1/Scripts" càd invisible depuis le Finder. Comme je ne suis pas sur Mac, difficile de t'aider. Regardes le paramétrage d'affichage des dossiers dans le Finder ???

OK, je vais le rendre invisible alors.  Je n'y arrive pas 😞  C'est fait, via Panneau de configuration > Dossier Partagé > caché les dossiers ad hoc

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

Super TUTO, en plus mis à jour avec soin! Merci @oracle7 et @bruno78

J'ai suivi à la lettre le tuto à la lettre jusqu'à l'installation du script python et la programmation de la tache de renouvellement. Tout est OK, la clef wildcard générée et déployée, bref que du bonheur! J'avais encore rien fait de plus complexe en ligne de commande.

Rendez-vous dans trois mois environ pour le renouvellement. D'ici là je me tiens au courant des nouvelles sur le présent topic.

Cordialement

Audio

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

A propos du script python mis en place par @bruno78 et @oracle7 ce matin mon NAS a exécuté pour la 1ère fois la tache planifiée et le système m'a renvoyé le message suivant:

Cher utilisateur,

Le planificateur de tâches à terminé une tâche planifiée.

Tâche : RenewCertif_W_LE
Heure de début : Mon, 10 Aug 2020 00:15:02 GMT
Heure d’arrêt : Mon, 10 Aug 2020 00:15:03 GMT
État actuel : 1 (Interrompu)
Sortie standard/erreur :
Traceback (most recent call last):
  File "/volume1/Scripts/acme_renew.py", line 41, in <module>
    scriptdir = ACMECERTS + "/Acme_renew"
NameError: name 'ACMECERTS' is not defined

 

J'ai édité le script mais hormis trouver la ligne 41 (scriptdir = ACMECERTS + "/Acme_renew") et constater le commentaire ligne 31 (# ACMECERTS a aller chercher dans /usr/local/share/acme.sh/account.conf CERT_HOME='/volume1/Certs') je ne ne peux rien faire de plus, je ne suis pas programmeur et ma connaissance des lignes de code est plus que succincte 😟

Merci pour votre aide.

Audio

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

voici le contenu du fichier account.conf tel que je viens de le trouver:

#LOG_FILE="/usr/local/share/acme.sh/acme.sh.log"
#LOG_LEVEL=1

AUTO_UPGRADE='1'

#NO_TIMESTAMP=1

    
ACCOUNT_EMAIL='xxx.yyyy@zzzz.fr'
UPGRADE_HASH='xxxxxxxxx-xxxxxxxxxx'
SAVED_OVH_AK='yyyyy-yyyyyy'
SAVED_OVH_AS='zzzzzzzz-zzzzzzz'
USER_PATH='/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin'

Visiblement la ligne CERT_HOME='/volume1/Certs n'y est pas.

Je l'ajoute après la ligne USER_PATH  et je reviens vers toi.

Cordialement,

Audio

Lien vers le commentaire
Partager sur d’autres sites

@bruno78

Bonjour,

Voilà le mail reçu ce matin :

Citation

Cher utilisateur,

Le planificateur de tâches à terminé une tâche planifiée.

Tâche : RenewCertif_W_LE
Heure de début : Mon, 10 Aug 2020 00:00:02 GMT
Heure d’arrêt : Mon, 10 Aug 2020 00:00:03 GMT
État actuel : 1 (Interrompu)
Sortie standard/erreur :

-- SYNOCERT     : /usr/syno/etc/certificate
-- LOCALCERT    : /usr/local/etc/certificate
-- ACMECERTS    : /volume1/Certs
-- ndd.tld      : 
ndd.net
-- certtype     : RSA
-- scriptdir    : /volume1/Certs/Acme_renew
-- log          : True
-- test         : False
-- clean        : False

-- Ancien certificat par DEFAULT, a renouveller : dxIeo0

-- Fichier de configuration du ndd.tld : /volume1/Certs/
ndd.net/ndd.net.conf
-- Date de renouvellement autorisee (T0+60 jours par defaut) : Sat Oct  3 09:10:03 UTC 2020
--- La date de renouvellement du certificat ( Sat Oct  3 09:10:03 UTC 2020 ) n'est pas atteinte
--- Inutile de renouveller le certificat -> fin du script

 

Ici, le script parle d'un ancien certificat à renouveler : dxleo0.  Kesako ?

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

Bon,

avec l'ajout de la ligne CERT_HOME='/volume1/Certs' dans le fichier account.conf et un démarrage manuel (WinSCP) du script avec la commande 

python /volume1/Scripts/acme_renew.py -l mondomaine.fr

je n'ai plus l'erreur précédente mais une nouvelle:

-- Le nom de domaine (ndd.tld) est errone ou mal configure avec acme.sh.
-- Arret du script de renouvellement du certificat

Mon nom de domaine est bien correct dans la commande, il a servi à la génération du certificat. Le process avait bien fonctionné et mon certificat LE fonctionne nominalement.

Cdt, Audio

Lien vers le commentaire
Partager sur d’autres sites

@Audio

Bonjour,

Effectivement ce n'est pas normal que le variable d'environnement CERT_HOME n'apparaisse pas dans le fichier "account.conf". Dès qu'elle est définie, le script Shell "acme.sh" l'inscrit dans ce fichier.

As-tu bien un répertoire "volume1/Certs" existant sur ton NAS ?

Si ce n'est pas le cas alors je crains que pendant le déroulement de la procédure tu es omis la déclaration de cette variable.

Du coup, regardes si tu as sur ton NAS un répertoire "/root/acme.sh/tonDomaine.tld" contenant les fichiers du certificat (tonDomaine. key, tonDomaine.cer, ca.cer, fullchain.cer).

Si c'est le cas alors cela confirmerait la non création de la variable CERT_HOME.

De plus, je trouve étonnant aussi la non présence de la variable OVH_CK dans ton fichier "account.conf". Là encore, très certainement une omission ...

Au final, je crains qu'il y ait des soucismais je peux me tromper.

As-tu conserver une copie des messages affichés lors de la création du certificat (cf  §4 du TUTO) ? Si oui tu peux les montrer (après les avoir nettoyés de tes infos personnelles) ?

il y a 6 minutes, Audio a dit :

je n'ai plus l'erreur précédente mais une nouvelle:

Quel est le contenu de ton répertoire "volume1/Certs"  ?

Cordialement

oracle7😉

 

@Pinpon_112

Bonjour,

il y a 9 minutes, Pinpon_112 a dit :

Ici, le script parle d'un ancien certificat à renouveler : dxleo0.  Kesako ?

Pas d’inquiétude à avoir, "dxleo0" est le nom interne de ton certificat que lui a donné Synology.

Citation

--- La date de renouvellement du certificat ( Sat Oct  3 09:10:03 UTC 2020 ) n'est pas atteinte
--- Inutile de renouveller le certificat -> fin du script

Le message est clair, rien a été fait car il est encore trop tôt ...

Cordialement

oracle7😉

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

Bonjour,

@Audio

  • le fichier account.conf étant généré automatiquement, je ne m'explique pas l'absence de la ligne CERT_HOME='xxxx' ???
  • sur la deuxième erreur (nom de domaine erroné), on effectue les vérifications suivantes :

    # on verifie le repertoire ACMECERT (ACMECERT =  /volume1/Certs/)
    # dans ACMECERT on verifie l'existance du repertoire domain
    # dans le repertoire ACMECERT/domain, on verifie la presence du fichier domain.conf
    # dans domain.conf, on verifie les lignes LE_DOMAIN=domain et LE_Alt=*.domain
    # Le_Domain='ndd.tld'
    # Le_Alt='*.ndd.tld'

Ton fichier ne doit pas être correct ? Peux-tu faire ces vérifications à la main stp ?

@Pinpon_112

  • les certificats sont indéxés par une valeur aléatoire, ici dans ton cas "dxIeo0". Tu retrouves cet index dans le répertoire /usr/syno/etc/certificate/_archive/dxIeo0
    • c'est là que se trouvent les fichiers *.pem
    • cet index est utilisé dans les fichiers DEFAULT et INFO pour pointer sur le bon certificat.
  • et oui, puisque ton certificat n'a pas atteint sa date d’émission + 60j, il est inutile de le renouveler. On conserve donc "l'ancien" certificat, tout à fait opérationnel.

Cdt

Bruno78

@Audio,

comme le suggère @oracle7, je crains que ta création de certificat n'ait pas été aussi "nickel" qu'il n'y parait ..... Il n'est pas normal que les fichiers de référence ne soient pas populés correctement.

Cdt

Bruno78

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

il y a 17 minutes, bruno78 a dit :
  • le fichier account.conf étant généré automatiquement, je ne m'explique pas l'absence de la ligne CERT_HOME='xxxx' ???
  • sur la deuxième erreur (nom de domaine erroné), on effectue les vérifications suivantes :

    # on verifie le repertoire ACMECERT (ACMECERT =  /volume1/Certs/)
    # dans ACMECERT on verifie l'existance du repertoire domain
    # dans le repertoire ACMECERT/domain, on verifie la presence du fichier domain.conf
    # dans domain.conf, on verifie les lignes LE_DOMAIN=domain et LE_Alt=*.domain
    # Le_Domain='ndd.tld'
    # Le_Alt='*.ndd.tld'

Ton fichier ne doit pas être correct ? Peux-tu faire ces vérifications à la main stp ?

Bien c'est pas gagné !

J'ai bien un répertoire /volume1/Certs mais dedans je n'y trouve qu'un répertoire acme_install. J'ai fait une recherche de fichier domain.conf dans tout le volume 1 et rien!

Je ne sais pas ce qui s'est passé depuis la génération du certificat Wildcard LE la semaine dernière. Bon le certificat étant valide jusqu'en novembre, ça laisse le temps d'investiguer..mais quand même!

Cordialement

Audio

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.