oracle7 Posté(e) le 25 juillet 2020 Posté(e) le 25 juillet 2020 (modifié) Bonjour, Pour tous ceux d'entre vous qui sont intervenus dans mon post "[TUTO]Création d'un certificat "wilcard" Let'sEncrypt avec la méthode "acme.sh" " : @alan.dub @Jeff777 @.Shad. @CyberFr @GrOoT64 @PPJP @_Megalegomane_ @TuringFan @zerda @oudin @vincentbls @Einsteinium @kerod @Jz84 @jo.p @Pinpon_112 et pour tous les autres membres qui liront ce post, j'ai le plaisir de vous informer que la procédure de renouvellement du certificat "wilcard" Let'sEncrypt est maintenant totalement opérationnelle et efficiente. Grâce aux talents de développement de @bruno78 qui a fourni un remarquable travail et que je remercie encore vivement ici, cette procédure est entièrement automatisée. Oubliés les ports à ouvrir pour le renouvellement ainsi que les problèmes de certificat non réaffecté aux services, plus besoin de getter la date du renouvellement, TOUS les services et packages (avec leurs dépendances) sont maintenant bien relancés après un renouvellement. Je vous invite donc à consulter le TUTO pour prendre connaissance des modifications apportées à la procédure. Bonne lecture ... Cordialement oracle7😏 Modifié le 25 juillet 2020 par oracle7 3 Citer
TuringFan Posté(e) le 25 juillet 2020 Posté(e) le 25 juillet 2020 Bonjour @oracle7 et @bruno78, Je suis débutant et clairement incapable de produire ce que vous avez fait mais ça ne m’empêche pas de me rendre compte du travail monstre réalisé ! Bravo ! J'avais en tête qu'avant l'arrivée du code le renouvellement automatique était généré via le planificateur de tache sous réserve de laisser lees ports 80 et 443 en permanence ouverts. Si je comprends bien ce code va donc permettre ce renouvellement automatique sans avoir à laisser ses ports 80 et 443 ouverts (ce qui est top d'un point de vue sécurité) et sans à avoir à réaffecter tous les 3 mois les services à couvrir avec le certificat : sur le papier on va donc pouvoir "oublier le sujet certificat à vie" pour tous ces "sous" domaines, c'est bien cela ? Merci encore, Je vais passer à l'implémentation dès que j'ai un peu de temps. 0 Citer
oracle7 Posté(e) le 25 juillet 2020 Auteur Posté(e) le 25 juillet 2020 @TuringFan Bonjour, il y a 9 minutes, TuringFan a dit : J'avais en tête qu'avant l'arrivée du code le renouvellement automatique était généré via le planificateur de tache sous réserve de laisser lees ports 80 et 443 en permanence ouverts. Je crains que tu ne mélanges les notions. Rien de grave, je t'explique : Il faut laisser les ports 80 et 443 ouverts en permanence le temps d'un renouvellement d'un certificat LE créé à partir de l'interface DSM de ton NAS pour n'importe quel domaine "ndd.tld". Ceci est aussi valable pour les certificats sur les domaines "xxxxx.synology.me" parce que ces méthodes (implémentées par Synology dans les NAS) utilisent le protocole "HTTP-01" qui nécessite l'ouverture de ces ports pour les opérations de validation du certificat. Maintenant, le port 443 doit aussi être ouvert en permanence si tu utilises un reverse proxy sur ton NAS. Mais c'est une autre raison de son ouverture. Avec la méthode 'acme.sh" couplée aux API d'OVH on utilise la méthode de validation dite par DNS basée sur le protocole « DNS-01 ». Ce protocole présente l’avantage de ne pas avoir besoin d’ouvrir de ports lors de la création du certificat LE mais surtout lors de son renouvellement et là c’est le « plus » indéniable du point de vue sécurité qu’apporte cette méthode. J'explique cela dans le TUTO. Voilà le pourquoi du comment ... Cordialement oracle7😏 0 Citer
kerod Posté(e) le 25 juillet 2020 Posté(e) le 25 juillet 2020 @oracle7 Je l'ai mis en place mais je ne peux pas tester pour le moment avec mon certificat qui est toujours valide. Par contre, je t'ai laissé des questions sur le tutoriel. 0 Citer
oracle7 Posté(e) le 25 juillet 2020 Auteur Posté(e) le 25 juillet 2020 (modifié) @kerod Tu as dû lire le tuto en "diagonale" car au § 10 en mode "manuel" dans une session SSH sous"root" tu peux lancer le script Python avec le paramètre "-t". Cordialement oracle7😏 Modifié le 25 juillet 2020 par oracle7 0 Citer
kerod Posté(e) le 25 juillet 2020 Posté(e) le 25 juillet 2020 (modifié) @oracle7 J'ai préféré faire la ligne de commande réelle donc automatisée... Sauf erreur de ma part, ce n'est pas le manuelle qui est utilisée via le mode programmé. Donc diagonale, non je reste cohérent avec ce que je veux faire avec le script. EDIT Je suis repassé en mode "manuel" et donc en ligne de commande pour tester (peut-être qu'il faudrait le préciser dans le tutoriel autrement que via le -h). Je n'ai aucune erreur et ce malgré ma configuration spécifique comme indiquée dans le tutoriel. Modifié le 25 juillet 2020 par kerod 0 Citer
oracle7 Posté(e) le 25 juillet 2020 Auteur Posté(e) le 25 juillet 2020 @kerod il y a 26 minutes, kerod a dit : peut-être qu'il faudrait le préciser dans le tutoriel autrement que via le -h Non, la description des options du script faite via le -h est à mon sens suffisante, il n'y a pas besoin d'en dire plus notamment pour des "initiés" auxquels ce mode manuel est plus particulièrement destiné. Les utilisateurs "lambda" eux, n'en n'ont pas l'utilité à partir du moments où ils suivent méthodiquement le TUTO avec l'utilisation standard du script Python. Cordialement 0 Citer
kerod Posté(e) le 25 juillet 2020 Posté(e) le 25 juillet 2020 @oracle7 Certes, mais on peut dire que pour tester le fonctionnement du renew on peut utiliser la commande en y ajoutant le paramètre -t. Ca ne mange pas de pain et ça permet même aux personnes autres que des initiés de se rendre compte du fonctionnement sans avoir à attendre le cron du lundi. 0 Citer
oracle7 Posté(e) le 25 juillet 2020 Auteur Posté(e) le 25 juillet 2020 @kerod il y a 2 minutes, kerod a dit : Ca ne mange pas de pain et ça permet même aux personnes autres que des initiés de se rendre compte du fonctionnement sans avoir à attendre le cron du lundi. Je ne suis pas convaincu car l'idée est aussi de ne pas "effrayé" les utilisateurs "lambda" avec les manipulations sous SSH avec tous les autres risques pour leur installation que cela recouvre en cas de fausse manip de leur part. Il n'y a qu'à observer certains posts ici pour s'en rendre compte. Il faut donc penser aussi à eux ... Cordialement oracle7😏 0 Citer
kerod Posté(e) le 25 juillet 2020 Posté(e) le 25 juillet 2020 @oracle7 Pour avoir fait de nombreux tutoriels dans ma "jeunesse" (et pourtant je le suis toujours), je ne trouve pas que c'est effrayé des personnes lambda. Par contre, quand on commence à parler de modification de compte root pour ne pas utiliser un sudo -i, là ça peut faire peur surtout connaissant les conséquences (comme tu le dis si bien). Personnellement, je passe pas le sudo -i et pas de souci sans avoir à créer une clé SSH RSA. Tout ça pour dire qu'une commande de test avec un -t en plus dans la ligne de commande que tu donnes déjà ne peut-être qu'un plus et qu'une suggestion pour une personne souhaitant tester le fonctionnement du python sans avoir un résultat disant que le certificat ne peut pas être renouveler car trop récent. Mais ce n'est que mon avis et pas mon tutoriel. 0 Citer
TuringFan Posté(e) le 26 juillet 2020 Posté(e) le 26 juillet 2020 (modifié) Il y a 19 heures, oracle7 a dit : @TuringFan Bonjour, Je crains que tu ne mélanges les notions. Rien de grave, je t'explique : Il faut laisser les ports 80 et 443 ouverts en permanence le temps d'un renouvellement d'un certificat LE créé à partir de l'interface DSM de ton NAS pour n'importe quel domaine "ndd.tld". Ceci est aussi valable pour les certificats sur les domaines "xxxxx.synology.me" parce que ces méthodes (implémentées par Synology dans les NAS) utilisent le protocole "HTTP-01" qui nécessite l'ouverture de ces ports pour les opérations de validation du certificat. Maintenant, le port 443 doit aussi être ouvert en permanence si tu utilises un reverse proxy sur ton NAS. Mais c'est une autre raison de son ouverture. Avec la méthode 'acme.sh" couplée aux API d'OVH on utilise la méthode de validation dite par DNS basée sur le protocole « DNS-01 ». Ce protocole présente l’avantage de ne pas avoir besoin d’ouvrir de ports lors de la création du certificat LE mais surtout lors de son renouvellement et là c’est le « plus » indéniable du point de vue sécurité qu’apporte cette méthode. J'explique cela dans le TUTO. Voilà le pourquoi du comment ... Cordialement oracle7😏 @oracle7, Merci pour la pédagogie. J'utilise effectivement un reverse proxy, mon port 443 restera donc toujours ouvert. Par contre si je comprends bien, même sans implémenter le code python, je peux fermer le port 80 (puisque en DNS-01) voire fermer également le port 443 aussi si il n'est pas utilisé (peu probable néanmoins), en revanche sans le code en python je devrais tous les 3 mois réaffecter le certificat aux différents services pertinents. Est-ce bien cela ? Qu'en est il des certificats dupliqués sur d'autres machines (un routeur par exemple) : a priori je comprends que le renouvellement est exogène au certificat et que celui reste inchangé post renouvellement et que donc il n'y aura aucune manipulation à faire sur le routeur ? Petite question technique : pour implémenter le code peut on passer directement à la partie 6. (renouvellement) ou faut il recommencer le tuto depuis le début ? Merci encore pour ce gros travail qui en plus de pla production et du temps que cela demande permet à des néophytes comme moi (grâce à une bonne pédagogie) de faire des choses qui étaient clairement hors de portée. Modifié le 26 juillet 2020 par TuringFan 0 Citer
oracle7 Posté(e) le 26 juillet 2020 Auteur Posté(e) le 26 juillet 2020 @TuringFan Bonjour, il y a 5 minutes, TuringFan a dit : je peux fermer le port 80 (puisque en DNS-01) voire fermer également le port 443 aussi si il n'est pas utilisé (peu probable néanmoins) Oui pour le port 80 sauf si tu utilises un application qui en a besoin du style site Web. Pour le port 443 ne perds pas ton temps à l'ouvrir ou à le fermer, laisses le ouvert tout simplement. Quel que part quand tout marche bien, je crois que moins on intervient sur le NAS mieux il s'en portera ... il y a 8 minutes, TuringFan a dit : en revanche sans le code en python je devrais tous les 3 mois réaffecter le certificat aux différents services pertinents. Est-ce bien cela ? OUI, mais ce serait dommage de se priver de cette possibilité ... On en revient encore à mon argument précédent ... il y a 9 minutes, TuringFan a dit : donc il n'y aura aucune manipulation à faire sur le routeur ? Bah en fait si, après chaque renouvellement, tu récupères les fichiers générés du certificat dans /volume1/Certs/ndd.tld - ndd.tld.key, ndd.tld.cer et l'intermédiaire ca.cer (pas les fichiers ".pem" issus d'un export depuis DSM !) et sans oublier de supprimer l'éventuel "saut de ligne" présent en début du fichier "ca.cer" avec un éditeur de texte et tu les importes dans le RT. C'est la seule contrainte, si on pouvait l'automatiser ce serait "the cherry on the cake" !😜 il y a 15 minutes, TuringFan a dit : Petite question technique : pour implémenter le code peut on passer directement à la partie 6. (renouvellement) ou faut il recommencer le tuto depuis le début ? Il suffit simplement d'importer le fichier Python au bon endroit et de modifier la tâche périodique dans DSM comme indiqué dans le TUTO au §6, ensuite d'attendre le renouvellement. Si vraiment tu le souhaites, dans une session SSH tu peux effectuer un test avec l'option "-t" (voir tuto) mais il te dira sûrement que la date de renouvellement n'est pas atteinte. Donc rien à recommencer du début, c'est cool non ? Cordialement oracle7😏 0 Citer
TuringFan Posté(e) le 26 juillet 2020 Posté(e) le 26 juillet 2020 Il y a 4 heures, oracle7 a dit : "the cherry on the cake" Dans ma liste au père noël alors mais j'imagine assez complexe à faire car échange entre machines. Il y a 4 heures, oracle7 a dit : Donc rien à recommencer du début, c'est cool non ? Je confirme c'est cool ça ! 0 Citer
TuringFan Posté(e) le 4 août 2020 Posté(e) le 4 août 2020 (modifié) @oracle7 merci ! Ça semble tourner, j'ai lancé le scrit (en non test) et j'obtiens : "la date de renouvellement du certificat ( Mon Aug 24 20:42:28 UTC 2020 ) n'est pas atteinte" ce qui semble cohérent. J'ai désactivé l'ancienne tache planifiée (V1 du tuto) et créé la nouvelle qui fait tourner le script Python. Merci encore, Modifié le 4 août 2020 par TuringFan 0 Citer
oracle7 Posté(e) le 4 août 2020 Auteur Posté(e) le 4 août 2020 @TuringFan Bon ba bravo c'est une affaire qui roule ... 👍 Content pour toi 😀 Tu peux même supprimer carrément l'ancienne tâche (v1 du TUTO), elle ne sert plus à rien maintenant. Cordialement oracle7😉 0 Citer
oracle7 Posté(e) le 11 août 2020 Auteur Posté(e) le 11 août 2020 Bonjour, @alan.dub @Jeff777 @.Shad. @CyberFr @GrOoT64 @PPJP @_Megalegomane_ @TuringFan @zerda @oudin @vincentbls @Einsteinium @kerod @Jz84 @jo.p @Pinpon_112 @Audio @bruno78 Pour vous informer qu'une évolution a été apportée au TUTO. § 10 : Ajout d’une trace complète et systématique du processus de renouvellement. § 10 : Ajout de l’option « -f » au script Python de renouvellement. Nouvelle version v1.40 du script Python (à remplacer simplement dans le répertoire « /volume1/Scripts »). Cordialement oracle7😉 4 Citer
alan.dub Posté(e) le 11 août 2020 Posté(e) le 11 août 2020 Merci 👍 Ce week-end je m’y attèle 😅 0 Citer
oracle7 Posté(e) le 21 août 2020 Auteur Posté(e) le 21 août 2020 Bonjour, @alan.dub @Jeff777 @.Shad. @CyberFr @GrOoT64 @PPJP @_Megalegomane_ @TuringFan @zerda @oudin @vincentbls @Einsteinium @kerod @Jz84 @jo.p @Pinpon_112 @Audio @bruno78 @Franck Binouse Pour vous informer qu'une évolution a été apportée au TUTO. § 6 : Évolution du script Python pour être aussi compatible de la dernière et actuelle version du langage Python : version 3.x.x § 10 : Mise à jour du texte d’aide associé à l’option « -h ». Suppression des fichiers de trace « cleanlog » et « cleanlogerr » qui n’apportaient rien de plus à la trace existante. Remaniement du fichier de trace pour que soit généré un nouveau fichier à chaque exécution du script. On dispose ainsi d’un historique « tournant » basé sur 9 fichiers : « acme_renew_python.log.1 » à « acme_renew_python.log.9 ». Le fichier à l’indice « 1 » étant toujours le dernier donc le plus récent. Nouvelle version v1.44 du script Python (à remplacer simplement dans le répertoire « /volume1/Scripts »). Cordialement oracle7😉 1 Citer
Pinpon_112 Posté(e) le 1 septembre 2020 Posté(e) le 1 septembre 2020 @oracle7 Je rentre de vacances et je vais m'en occuper tout de suite. Merci 👍 0 Citer
Messages recommandés
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.