Aller au contenu

Renouvellement automatique Certificat "wilcard" LetsEncrypt


Messages recommandés

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é par oracle7
Lien vers le commentaire
Partager sur d’autres sites

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.
 

Lien vers le commentaire
Partager sur d’autres sites

@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😏

Lien vers le commentaire
Partager sur d’autres sites

@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é par kerod
Lien vers le commentaire
Partager sur d’autres sites

@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

Lien vers le commentaire
Partager sur d’autres sites

@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.

Lien vers le commentaire
Partager sur d’autres sites

@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😏

Lien vers le commentaire
Partager sur d’autres sites

@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.

Lien vers le commentaire
Partager sur d’autres sites

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é par TuringFan
Lien vers le commentaire
Partager sur d’autres sites

@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😏

 

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines aprĂšs...

@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é par TuringFan
Lien vers le commentaire
Partager sur d’autres sites

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😉

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines aprĂšs...

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😉

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines aprĂš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.

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.