Tuto : Gestion du renouvellement d'un certificat Let's Encrypt via scenario Jeedom

Finalement je n’ai pas eu besoin, la nuit a fait son « job », ou plutot quelque chose à du l’actualiser car ce matin c’est ok sans ce redémarrage

Donc là je peux couper le port 80 qui est ouvert sur internet ?

Oui, et surveiller dans 60 jours que ton certificat est bien prolongé

Bonjour

Bon et bien mon certificat expire dans 19 jours et donc il n’a pas été prolongé
si je tente un renew manuel, j’ai des erreurs
`Failed to renew certificate jeedom.xxxxxxx.ovh with error: Missing properties in credentials configuration file /home/pi/.secrets/certbot/ovh.ini:

Comme ci toute la conf avec les APIs n’existait pas, ce qui est vrai car le fichier ovh.ini est vide, snif

Soit tu ne l’as pas renseigné, soit tu l’as renseigné au mauvais endroit. Je ne pense pas qu’il se soit vidé tout seul.

Est-ce que le script t’as bien alerté que le renouvellement était en échec ?

Norbert

Je suis entrain de tout refaire le tuto, là j’attends les 120s de propagation DNS

Bon et bien tout est ok, peut être que j’avais mal enregistré le fichier lors de ma manip. J’ai rajouté le cron et vérifié deux fois les fichiers, je verrais le 21 juin si le cert est renouvellé ou pas

Merci

2 « J'aime »

Par contre une question pour le script d’alerte, doit on activer le renew (de 0 a 1) si on a mis le crontab ?

Tu peux laisser à 0 si tu renouvelle via le cron.
Je fais juste un rendez (se que tu fais via le cron) lorsque le délai est dépassé.

Norbert

Et dernière question (car en fait j’avais du buter la et pas aller plus loin) sur le script de notif
J’ai bien créé des noticiations sur mon mobile dans jeedom connect, mais dans ton script (les deux dernières variables) on ne peut ajouter que des commandes infos et là c’est une commande notification. Il faut passer par un virtuel ?
Dans un scénario classique là j’ai bien les commandes notifications de jeedom connect mais là je n’ai que : activité/distance/position/batterie

J’ai fait un copier/coller de ma commande de notification sans la « chercher », car en cherchant je ne vois donc que les commandes INFOS de l’équipement JeedomConnect

1 « J'aime »

Non, il faut l’écrire à la main. je la mets dans un tag car ça évite à tous ceux qui ne sont pas à l’aise avec les blocs code d’être obligé d’y aller dedans. mais comme tu le dis, le tag attendre une commande info. Pour mettre une commande notification qui est une commande action, pas le choix, c’est à la main.
Le plus simple c’est d’aller sur ton équipement JC dans les paramètres avancés et là tu auras toutes tes commandes avec le chemin exact. tu fais un copier-coller et c’est tout

Norbert

1 « J'aime »

Ok parfait c’est ce que j’ai fait au final, je verrais si tout est ok la prochaine fois

Bonjour,
J’utilise le code depuis toujours et j’ai toujours eu des erreurs de renouvellement.
Je m’y penche ce soir…
Le scénario me dit:

[2023-07-24 20:38:59][SCENARIO] -- Start : Scenario lance manuellement.
[2023-07-24 20:38:59][SCENARIO] - Exécution du sous-élément de type [action] : action
[2023-07-24 20:38:59][SCENARIO] Mise à jour du tag #domaine# => XXXXX.synology.me
[2023-07-24 20:38:59][SCENARIO] Mise à jour du tag #expirationAlerte# => 10
[2023-07-24 20:38:59][SCENARIO] Mise à jour du tag #renewAuto# => 1
[2023-07-24 20:38:59][SCENARIO] Mise à jour du tag #renewDate# => 25
[2023-07-24 20:38:59][SCENARIO] - Exécution du sous-élément de type [action] : code
[2023-07-24 20:38:59][SCENARIO] Exécution d'un bloc code 
[2023-07-24 20:39:17][SCENARIO] Erreur de renouvellement du certificat pour le domaine XXXXX.synology.me, expiration dans 11 jours (05/08/2023)
Essayer la commande ci-dessous en SSH
sudo /etc/certbot-auto renew --apache -d XXXXX.synology.me
[2023-07-24 20:39:17][SCENARIO] Fin correcte du scénario

La commande citée en SSH me dit:

pi@raspberrypi:~ $ sudo /etc/certbot-auto renew --apache -d XXXXX.synology.me
Your system is not supported by certbot-auto anymore.
certbot-auto and its Certbot installation will no longer receive updates.
You will not receive any bug fixes including those fixing server compatibility
or security problems.
Please visit https://certbot.eff.org/ to check for other alternatives.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Currently, the renew verb is capable of either renewing all installed certificat                                                                                                             es that are due to be renewed or renewing a single certificate specified by its                                                                                                              name. If you would like to renew specific certificates by their domains, use the                                                                                                              certonly command instead. The renew verb may provide other options for selectin                                                                                                             g certificates to renew in the future.

La commande que j’utilise habituellement en SSH, est sudo /etc/certbot-auto --apache -d XXXXX.synology.me

pi@raspberrypi:~ $ sudo /etc/certbot-auto  --apache -d XXXX.synology.me
Your system is not supported by certbot-auto anymore.
certbot-auto and its Certbot installation will no longer receive updates.
You will not receive any bug fixes including those fixing server compatibility
or security problems.
Please visit https://certbot.eff.org/ to check for other alternatives.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Cert not yet due for renewal

You have an existing certificate that has exactly the same domains or certificate name you requested and isn't close to expiry.
(ref: /etc/letsencrypt/renewal/XXXX.synology.me.conf)

What would you like to do?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Attempt to reinstall this existing certificate
2: Renew & replace the cert (may be subject to CA rate limits)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
Keeping the existing certificate
Deploying Certificate to VirtualHost /etc/apache2/sites-enabled/000-default-le-ssl.conf
Enhancement redirect was already set.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://XXXX.synology.me,
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/XXXX.synology.me/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/XXXX.synology.me/privkey.pem
   Your cert will expire on 2023-10-22. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

J’ai donc supprimé le « renew » au niveau du bloc code, mais j’ai toujours la même erreur dans les logs.

[2023-07-24 20:41:44][SCENARIO] -- Start : Scenario lance manuellement.
[2023-07-24 20:41:44][SCENARIO] - Exécution du sous-élément de type [action] : action
[2023-07-24 20:41:44][SCENARIO] Mise à jour du tag #domaine# => XXXXX.synology.me
[2023-07-24 20:41:44][SCENARIO] Mise à jour du tag #expirationAlerte# => 10
[2023-07-24 20:41:44][SCENARIO] Mise à jour du tag #renewAuto# => 1
[2023-07-24 20:41:44][SCENARIO] Mise à jour du tag #renewDate# => 25
[2023-07-24 20:41:44][SCENARIO] - Exécution du sous-élément de type [action] : code
[2023-07-24 20:41:44][SCENARIO] Exécution d'un bloc code 
[2023-07-24 20:42:20][SCENARIO] Erreur de renouvellement du certificat pour le domaine XXXXX.synology.me, expiration dans 11 jours (05/08/2023)
Essayer la commande ci-dessous en SSH
sudo /etc/certbot-auto --apache -d XXXX.synology.me
[2023-07-24 20:42:20][SCENARIO] Fin correcte du scénario

Comment faire pour faire fonctionner le scenario ?
Merci pour votre aide.

Bonjour,

une petite remarque sur vos problemes de certbot. Une méthode pour faire « simple » est d’installer docker (+ portainer) + nginx proxy manager. (J’ai quand meme un doute sur un raspberry…)

Proxy manager s’occuper de gérer les (sous-)domaines liés à l’ip http/https, et route sur les sites en interne sur un port quelconque (ou sur une autre machine port 80) et gère au passage tout le systeme Let’s encrypt.

image

JCB

1 « J'aime »

Bonjour @ngrataloup et à tous
A mon tour d’être en panne de renouvellement de certificat LetsEncrypt. Je suis chez OVH de puis plus de 2 ans et je n’ai jamais eu ce problème lorsque je lance le commande suivante :

certbot renew
Traceback (most recent call last):
  File "/usr/bin/certbot", line 11, in <module>
    load_entry_point('certbot==0.31.0', 'console_scripts', 'certbot')()
  File "/usr/local/lib/python3.7/dist-packages/pkg_resources/__init__.py", line 479, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python3.7/dist-packages/pkg_resources/__init__.py", line 2861, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python3.7/dist-packages/pkg_resources/__init__.py", line 2465, in load
    return self.resolve()
  File "/usr/local/lib/python3.7/dist-packages/pkg_resources/__init__.py", line 2471, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3/dist-packages/certbot/main.py", line 10, in <module>
    import josepy as jose
  File "/usr/lib/python3/dist-packages/josepy/__init__.py", line 44, in <module>
    from josepy.interfaces import JSONDeSerializable
  File "/usr/lib/python3/dist-packages/josepy/interfaces.py", line 8, in <module>
    from josepy import errors, util
  File "/usr/lib/python3/dist-packages/josepy/util.py", line 4, in <module>
    import OpenSSL
  File "/usr/lib/python3/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1553, in <module>
    class X509StoreFlags(object):
  File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1573, in X509StoreFlags
    CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'

Apparemment c’est un souci avec python3 . Peux-tu, stp, me filer un petit coup de main. Merci
Edit : Je constate que quelque soit la commande certbot lancée, j’ai les mêmes log que ci-dessus. Problème de version de certbot ? Je n’ai rien changé a priori depuis mon dernier renouvellement.

Edit : Pensez-vous que je puisse appliquer cette procédure sans risques ? Certbot Instructions | Certbot

Bonsoir,
Je n’ai plus que 5 jours pour renouveler mon certificat. Si quelqu’un est dispo pour m’aider, merci à lui (eux).
Bonne soirée

Tu as retenté une instal depuis 0 du certificat, avec réinstallation de Snap, certbot etc …

Merci de ta réponse. Je n’ai rien fait, j’attendais une réponse à ce message pour me lancer. certbot a été initialement installé avec cette commande apt install certbot python-certbot-apache.

Est-ce que je dois désinstaller certbot et autres avant de lancer la procédure indiquée et est-elle suffisante ? Merci

J’ai récemment du refaire la manip.
Tu peux suivre le tuto de Comment sécuriser l'accès à Jeedom en HTTPS avec un certificat SSL gratuit qui explique il me semble la révocation de l’ancien certificat en page 2
Tu peux tenter un uninstal de ta cmd précédente également

Merci, OK je fais la manip et je te tiens au courant

Bonjour @BAGGI_166
J’ai fait la manip ce matin et ça a fonctionné impeccable. Merci de ton aide, je garde le lien indiqué pour la prochaine fois.
Bonne journée

1 « J'aime »

Parfait, normalement tu as même pas de prochaine fois si tu as mis la cmd ds la table cron :slight_smile: