Aller au contenu

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


oracle7

Messages recommandés

@oudin

Bonjour,

  1. Comme sur tout forum, il est d'usage que les nouveaux membres passent par la rubrique [PRESENTATION] pour faire la leur. Certains ici, y sont sensibles et de plus cela facilite les réponses en fonction du niveau de compétences du membre. Cela dit rassures-toi il n'est pas trop tard pour bien faire ...
  2. Merci de ton appréciation.
  3. Il y a 9 heures, oudin a dit :

    Renouvellement automatique avec  le nouveau script python, juste besoin de me reconnecter au site de l'API d'OVH et tout a fonctionné parfaitement.

    Pour comprendre, pourquoi as-tu eut besoin de te reconnecter au site de l'API d'OVH ? Tu peux préciser STP.

  4. PS 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
Lien vers le commentaire
Partager sur d’autres sites

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

# export SYNO_Scheme="http"

Par défaut : « localhost » mais à spécifier si vous n’utilisez pas sur la présence machine. Les « très initiés » comprendront.


# export SYNO_Hostname="localhost"

Port utilisé pour DSM, par défaut : 5000 pour HTTP et mais on peut fixer à 5001 pour HTTPS


# export SYNO_Port="5000"

o   On poursuit les définitions de variables d’environnement :

Attention ici, les « simples cotes » « ' » sont utilisées pour « échapper » les éventuels caractères spéciaux présents dans vos identifiants et mots de masse.


$ export SYNO_Username='DSM_Admin_Username'

$ export SYNO_Password='DSM_Admin_Password!123'

Bonjour,

Je viens de me lancer dans la mise en oeuvre de ce superbe tuto mais je bloque à cet endroit.

Je n'utilise pas les ports par défaut (5000 et 5001) et j'ai un reverse proxy de configuré : nomdunas.nomdedomaine.ndd (port 443 donc).

Unable to authenticate to XXX

Check your username and password.

Error deploy for domain:XXX

Deploy error.

J'ai tout essayé, impossible de trouver la solution.

Si vous avez une idée, merci.

Lien vers le commentaire
Partager sur d’autres sites

Je me permets de répondre même si je ne fais pas partie des très initiés^^.

Tu utilises un reverse proxy qui écoute sur le port 443 mais qui redirige donc localement (logiquement en http) vers le service DSM au moyen d'un port local.

Il te faut récupérer ce numéro de port dans la configuration du reverse proxy: panneau de configuration/portail des applications ou directement dans réseau/Paramètres DSM.

Aussi si tu utilises une double authentification sur le compte qui te permet de te connecter à DSM il faut aussi bien penser à exporter le syno_DID.

 

Lien vers le commentaire
Partager sur d’autres sites

@vincentbls

Bonjour,

  1. il y a 28 minutes, vincentbls a dit :

    Je n'utilise pas les ports par défaut (5000 et 5001)

    Pour la variable d'environnement SYNO_Port met ton nouveau port (en cohérence avec HTTP ou HTTPS)
     

  2. il y a 28 minutes, vincentbls a dit :

    Unable to authenticate to XXX

    Check your username and password.

    A tous les coups pour les variables d'environnement SYNO_Username et SYNO_Password, tu as soit introduit un caractère "invisible" lors du C/C de l'Identifiant ou du MdP ou si tu les as renseignées à la main et alors soit ce ne sont pas des simples cotes que tu as saisies pour encadrer les valeurs de l'Identifiant et/ou du MdP, soit tu utilises des caractères "exotiques" ou espace dans ces derniers. N'oublies pas que l'on attaque un système Linux donc très sensibles aux types de caractères utilisés (notamment pas de caractères accentués). Je t'invite à vérifier cela et corriger éventuellement en les changeant radicalement (au moins notamment pour le MdP).
    Par ailleurs, tout bêtement, ces Identifiant/MdP sont ceux que tu utilises pour te connecter au NAS normalement ?

Cordialement

oracle7😉

 

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

il y a 8 minutes, oracle7 a dit :

@vincentbls

PERDU ! la virgule est un caractère "exotique" pour le monde Linux. Modifie ton MdP (sans virgule cette fois) et tu verras cela marchera tout de suite mieux 😂

Cordialement

oracle7😉

Je sentais venir cette réponse... 😭

Ca m'arrange pas vraiment cette affaire... Il faut absolument bannir les caractères spéciaux ?

Est-il possible d'importer manuellement le certificat et de pouvoir ensuite mettre en place le script et en profiter ?

Ou de modifier le mot de passe temporairement, le temps du déploiement ?

Merci.

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

mots de masse

Petite coquille, soit-dit en passant 😉

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

@vincentbls

il y a 3 minutes, vincentbls a dit :

Ca m'arrange pas vraiment cette affaire... Il faut absolument bannir les caractères spéciaux ?

OUI et si tu persistes avec leur usage, tu auras à coup sûr d'autres soucis à causes d'eux à un moment ou un autre.

De toutes façons, utiliser un/des caractère(s) exotique(s) dans un MdP ne rajoute qu'un seul bit par caractère en équivalent cryptographique alors qu'utiliser deux caractères standards en rajoute 11. Donc finalement c'est plus complexe et plus long à déchiffrer lors d'une attaque par force brute de ton MdP, ce qui est facile pour une machine mais qui l'est moins pour un humain.

C'est pour cela que l'on recommande partout d'avoir un MdP lonq (12 car mini, avec des caractères standards majuscules, minuscules et chiffres seulement) plutôt que compliqué avec ces caractères "exotiques"/"Spéciaux". Je le répète, tu ne gagnes rien en sécurité à les utiliser sauf qu'ils sont plus difficiles à retenir et plus sujets à erreurs de saisie. Pour preuve aussi, regardes les MdP générés par des outils générateurs de MdP comme keepass, ils n'utilisent jamais de caractères "exotiques" eux ! Maintenant c'est toi qui voit...

il y a 14 minutes, vincentbls a dit :

Est-il possible d'importer manuellement le certificat et de pouvoir ensuite mettre en place le script et en profiter ?

OUI bien sur, c'est possible mais tu auras perdu tout le bénéfice de l'automatisation du processus notamment de renouvellement. Donc, pour une virgule, le jeu en vaut-il la chandelle ? Ce serait quand même dommage, non ?

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

il y a 13 minutes, oracle7 a dit :

Donc, pour une virgule, le jeu en vaut-il la chandelle ? Ce serait quand même dommage, non ?

Je vais donc me passer de ma , 👋

"Inclure les caractères spéciaux" dans la configuration du mot de passe est néanmoins une option de DSM 🙂

Merci encore.

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

@vincentbls

Bonjour,

il y a 4 minutes, vincentbls a dit :

Le NAS force les connexions https.

Tu n'aurais coché par hasard la case "Rediriger automatiquement les connexions HTTP vers HTTPS pour le bureau DSM" dans "Panneau de configuration / réseau / Paramètres DSM" ?

Si Oui décoche là. En plus, si on la coche cela casse le Reverse proxy...

Par ailleurs, le processus LE bloque où ? Quels messages d'erreurs as-tu ?

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

@oracle7 J'y ai pensé et c'est désactivé.

Toujours pareil :

Unable to authenticate to XXX using http.

Check your username and password.

Error deploy for domain:XXX

Deploy error.

Dois-je utiliser localhost et le port http que j'ai moi-même modifié ?

Je pense que je fais une erreur dans ce que je renseigne.

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

@vincentbls

Bonjour,

il y a 13 minutes, vincentbls a dit :

Unable to authenticate to XXX using http.

Check your username and password.

Bon ce que je constate (par rapport à ton premier post), il y a en plus le problème du port HTTP. Lequel as-tu utilisé : 5000 ou ton nouveau port de remplacement "XXXX" ? Renseignes avec le nouveau port "XXXX" la variable SYNO_Port.

Garde "localhost" tel quel pour la variable SYNO_Hostname.

Par ailleurs, tu as toujours un problème avec soit ton Identifiant soit ton MdP.

Essaies de saisir la chaîne par ex : export SYNO_Username='tonIdentifiant' dans un éditeur de texte style notepad et de C/C ensuite celle-ci dans ta session SSH. Idem ensuite pour le MdP.

Cordialement

oracle7😉

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

@oracle7 Je n'avais pas recommencé sur une nouvelle session ssh après le changement du mot de passe.

Mais maintenant

 

The domain ' ' is not a cert name. You must use the cert name to specify the cert to install.

Can not find path:' '

Je vais laisser tomber pour ce soir, demain il fera jour !

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

@vincentbls

Bonjour,

il y a 6 minutes, vincentbls a dit :

Je n'avais pas recommencé sur une nouvelle session ssh après le changement du mot de passe.

Effectivement si tu es reparti sur une nouvelle session SSH, il est alors impératif de ré exporter toutes les variables d'environnement depuis le début du processus.

Cordialement

oracle7😉

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

Je n’ai pas encore retenté la manœuvre que je vais reprendre à 0.
Mais avant je veux trouver où ça coince lors du processus d’identification (ne parlons plus du MDP).
Je joins mon NAS grâce à un reverse proxy : nas.nomdedomaine.fr
Donc dans le portail des applications : nas.nomdedomaine.fr [443] -> http://192.168.X.X:port_perso_http
Les ports 5000 et 5001 sont modifiés avec mes propres ports.
Dans mon réseau local mon NAS est accessible via http://192.168.X.X:port_perso_http
Que je n’utilise jamais car je m’y connecte toujours par nas.nomdedomaine.fr.
Les connexions forcées HTTPS sont désactivées.
Toujours dans mon réseau local, http:localhost:port_perso_http ne fonctionne pas et c’est peut-être là que ça coince ?


Envoyé de mon iPhone en utilisant Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

@oracle7 et @bruno78

Bonjour et pardon pour mon retour tardif (vacances + rentrée chargée).

Encore une fois merci pour le tuto (qui permet à des profanes comme moi de pouvoir jouer avec son NAS) et "les mises à jour de maintenance"

Contexte

Avant votre dernière mise à jour j'avais remarqué que chez moi cela ne fonctionnait pas (j'avais surement mal fait quelque chose) et j'ai donc réessayé ce matin avec le nouveau script mais j'ai toujours les mêmes problèmes


Extraits du log du script

09/13/2020 12:06:50 PM INFO:>>  Lancement du script acme_renew.py
09/13/2020 12:06:50 PM INFO:>>  Si option -h ou -v, alors pas d'autre log
09/13/2020 12:06:50 PM INFO:
09/13/2020 12:06:50 PM INFO:>> acme_renew release   : Version 1.44 Released -- 21-aout-2020
09/13/2020 12:06:50 PM INFO:>> version python sys   : Python 2.7.12
09/13/2020 12:06:50 PM INFO:     SYNOCERT           : /usr/syno/etc/certificate
09/13/2020 12:06:50 PM INFO:     LOCALCERT          : /usr/local/etc/certificate
09/13/2020 12:06:50 PM INFO:     ACMECERTS          : /volume1/Certs
09/13/2020 12:06:50 PM INFO:     ndd.tld            : mondomaine.ndd
09/13/2020 12:06:50 PM INFO:     certtype           : RSA
09/13/2020 12:06:50 PM INFO:     scriptdir          : /volume1/Certs/Acme_renew
09/13/2020 12:06:50 PM INFO:     log         [-l]   : True
09/13/2020 12:06:50 PM INFO:     clean       [-c]   : False
09/13/2020 12:06:50 PM INFO:     force       [-f]   : False
09/13/2020 12:06:50 PM INFO:     test        [-t]   : False
09/13/2020 12:06:50 PM INFO:-- Lecture du fichier /usr/syno/etc/certificate/_archive/DEFAULT
09/13/2020 12:06:50 PM INFO:-- Ancien certificat par DEFAULT, a renouveler : ******
09/13/2020 12:06:50 PM INFO:-- Lecture du fichier /usr/syno/etc/certificate/_archive/INFO
09/13/2020 12:06:50 PM INFO:-- Date de renouvellement autorisee (T0+60 jours par defaut) : Mon Aug 24 20:42:28 UTC 2020
09/13/2020 12:06:50 PM INFO:-- La date de renouvellement du certificat est atteinte
09/13/2020 12:06:50 PM INFO:-- Debut de la procedure de renouvellement
09/13/2020 12:06:50 PM INFO:-- Sauvegarde du repertoire SYNOCERT/_archive: tar cvfP /usr/syno/etc/certificate/_archive.tar.20200913120650 /usr/syno/etc/certificate/_archive/
09/13/2020 12:06:50 PM INFO:-- listesrv : liste packages et services concernes par ce certificat :

[...]

09/13/2020 12:06:50 PM INFO:-- Renouvellement certificat via acme.sh
09/13/2020 12:06:50 PM INFO:-- Export des variables environnement : SYNO_Create, SYNO_Username, SYNO_Password, SYNO_DID
09/13/2020 12:06:50 PM INFO:-- Lancement de la commande de renouvellement : bash /usr/local/share/acme.sh/acme.sh --cron --force --debug --log /volume1/Certs/Acme_renew/acmelog --home /usr/local/share/acme.sh/
09/13/2020 12:07:01 PM INFO:-- Nouveau certificat par DEFAULT : ******
09/13/2020 12:07:01 PM ERROR:-- Le certificat n'a pas ete renouvele.
09/13/2020 12:07:01 PM ERROR:-- Consulter le log de acme.sh : /volume1/Certs/Acme_renew/acmelog
09/13/2020 12:07:01 PM ERROR:-- Fin de la procedure

Python 2.7.12 : je ne comprends pas ce log car j'ai installé ce matin le packet Python 3 !
mondomaine.ndd : j'ai remplacé mon véritable nom de domaine
****** : Je ne sais pas si cette chaine de lettres et chiffre est confidentielle ou non, je l'ai donc remplacée par des "*"

Extrait du log acme

[...]

[Sun Sep 13 12:07:01 CEST 2020] pid
[Sun Sep 13 12:07:01 CEST 2020] No need to restore nginx, skip.
[Sun Sep 13 12:07:01 CEST 2020] _clearupdns
[Sun Sep 13 12:07:01 CEST 2020] dns_entries
[Sun Sep 13 12:07:01 CEST 2020] skip dns.
[Sun Sep 13 12:07:01 CEST 2020] Return code: 1
[Sun Sep 13 12:07:01 CEST 2020] Error renew mondomaine.ndd.
[Sun Sep 13 12:07:01 CEST 2020] _error_level='1'
[Sun Sep 13 12:07:01 CEST 2020] _set_level='2'
[Sun Sep 13 12:07:01 CEST 2020] The NOTIFY_HOOK is empty, just return.
[Sun Sep 13 12:07:01 CEST 2020] ===End cron===

mondomaine.ndd : j'ai remplacé mon véritable nom de domaine

Ma demande

En dehors des erreurs clairement compréhensibles je n'ai pas les compétences pour comprendre tous les logs, quelqu'un pourrait t'il svp m'aider à comprendre ce qui cloche dans mon cas ?

En espérant que cela sera utile à d'autre et en espérant ne pas avoir raté un message qui traitait déjà de la résolution de ce problème.

PS : j'ai l'impression que le log ACME est la concaténation des logs de mes différentes tentatives, est-ce normal ? Ne devrais-je pas avoir un fichier de log par tentative ?

Cordialement,

Lien vers le commentaire
Partager sur d’autres sites

@TuringFan

Bonjour et bon retour

  1. Pas grave mais STP ne postes pas deux fois la même réponse dans deux posts différents. Un seul suffit ... Supprimes l'autre.
  2. Manifestement tu as lancé le script manuellement avec juste le paramètre "-l". Ton certificat n'a pas été renouvelé justement parce que la date de renouvellement n'est pas encore atteinte. Si tu veux vraiment le renouveler avant cette date (mais ce n'est pas utile à mon avis) utilises l'option "-f".
  3. Pour le problème Python si tu lances le script avec la commande "python acme_renew.py - l ndd.tld" c'est la version 2.7.X de Python qui est utilisée MAIS si tu exécute la commande "python3 acme_renew.py - l ndd.tld" c'est la version 3.x de Python qui sera utilisée. Tu as lu trop vite le TUTO .... 🤪
  4. il y a 29 minutes, TuringFan a dit :

    PS : j'ai l'impression que le log ACME est la concaténation des logs de mes différentes tentatives, est-ce normal ? Ne devrais-je pas avoir un fichier de log par tentative ?

    Si tu as installé la dernière version v1.44 du script : Non il n'y a plus de concaténation des logs et Oui il n'y a plus qu'un log par exécution du script. Le log de la dernière exécution est dans le fichier "/volume1/Certs/Acme_renew/acme_renew_python.log.1" . Tu as dû consulté une ancienne version du fichier log. Je t'invites donc pour éviter toutes confusions à lancer le script avec l'option "-c" afin de faire un bon nettoyage de tous les fichiers inutiles (dans une console PuTTY et surtout pas dans une console WinSCP -> voir avertissement dans le TUTO à ce propos).

Dans tous les cas, je t'invites à relire le TUTO intégralement et attentivement pour bien prendre en compte toutes les modifications qui y ont été apportées depuis la version initiale.

Cordialement

oracle7😉

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @oracle7, @TuringFan,

  • le lancement avec "-l" indique le log du script acme.sh. dans /volume1/Certs/Acme_renew/acmelog  . Le script Python genère lui, de toute façon, un log /volume1/Certs/Acme_renew/acme_renew_python.log.x [x de 1 a 9].
  • effectivement, pour lancer avec python3, il faut executer python3 .... . La commande python pointe toujours sur Python2
  • enfin, d’après les extraits que tu donnes, la demande de renouvellement a bien été faire, et l'erreur se tropuve donc dans le log du script acme.sh, donc dans le fichier /volume1/Certs/Acme_renew/acmelog
    • c'est ce fichier qu'il faut examiner de plus pret pour savoir pourquoi il a planté.
    • il faudrait le log acmelog complet.

Cdt

Bruno78

Lien vers le commentaire
Partager sur d’autres sites

à l’instant, oracle7 a dit :

Pas grave mais STP ne postes pas deux fois la même réponse dans deux posts différents. Un seul suffit ... Supprimes l'autre.

Pardon. C'est supprimé.

il y a 1 minute, oracle7 a dit :

Manifestement tu as lancé le script manuellement avec juste le paramètre "-l".

Oui j'ai lancé depuis le planificateur de tache sans jouer sur les options, j'imagine donc que le paramètre "-I" est le seul par défaut ?

il y a 2 minutes, oracle7 a dit :

Ton certificat n'a pas été renouvelé justement parce que la date de renouvellement n'est pas encore atteinte.

Ok, mais du coup à quoi correspondent les deux lignes ci-dessous du log du script python ?

09/13/2020 12:06:50 PM INFO:-- Date de renouvellement autorisee (T0+60 jours par defaut) : Mon Aug 24 20:42:28 UTC 2020
09/13/2020 12:06:50 PM INFO:-- La date de renouvellement du certificat est atteinte

il y a 4 minutes, oracle7 a dit :

Pour le problème Python si tu lances le script avec la commande "python acme_renew.py - l ndd.tld" c'est la version 2.7.X de Python qui est utilisée MAIS si tu exécute la commande "python3 acme_renew.py - l ndd.tld" c'est la version 3.x de Python qui sera utilisée.

Ok, merci.

il y a 4 minutes, oracle7 a dit :

Tu as lu trop vite le TUTO .... 🤪

Visiblement oui.

il y a 5 minutes, oracle7 a dit :

Si tu as installé la dernière version v1.44 du script : Non il n'y a plus de concaténation des logs et Oui il n'y a plus qu'un log par exécution du script. Le log de la dernière exécution est dans le fichier "/volume1/Certs/Acme_renew/acme_renew_python.log.1" .

En fait j'ai les deux créé exactement à la même; heure : la version concaténée et la version .1.

il y a 6 minutes, oracle7 a dit :

Je t'invites donc pour éviter toutes confusions à lancer le script avec l'option "-c" afin de faire un bon nettoyage de tous les fichiers inutiles (dans une console PuTTY et surtout pas dans une console WinSCP -> voir avertissement dans le TUTO à ce propos).

Ok.

il y a 6 minutes, oracle7 a dit :

Dans tous les cas, je t'invites à relire le TUTO intégralement et attentivement pour bien prendre en compte toutes les modifications qui y ont été apportées depuis la version initiale.

Oui.

à l’instant, bruno78 a dit :

il faudrait le log acmelog complet

Ok, quelles informations "confidentielles" dois-je d'abord retraité ? Nom de domaine j'imagine, mais aussi des clefs non ?

Lien vers le commentaire
Partager sur d’autres sites

@TuringFan

Bonjour

Et moi qui t’invites à relire attentivement le TUTO !  😟 Désolé, je suis confus, j'ai analysé bien trop rapidement ton Log. J'ai en fait focalisé sur les options utilisées et sur "-- Le certificat n'a pas ete renouvele." .

Heureusement que @bruno78 est passé par là pour remettre les pendules à l'heure !!! Grand merci à lui. 👍

Par ailleurs, je n'ai pas percuté vis à vis du fichier "acmelog" car comme il y a pas mal de temps j'ai fait le ménage, ce fichier n’apparaissait plus dans mon répertoire "Acme_renew" et trop rapidement j'ai basé ma réponse sur cette absence.

Effectivement, maintenant il faut examiner en détail ce fichier "acmelog" pour trouvé l'origine de ce non renouvellement. Envoies le nous STP ...

Cordialement

oracle7😉

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.