Bonjour,
(RPI3b / livebox5 / jeedom 4.4.8.1)
J’ai correctement configuré l’accès externe https avec letsencrypt en passant par NoiP (merci pour le tuto !), mais suite à la réception de l’avertissement d’échéance dans 30 jours, j’ai essayé de lancer le renouvellement en manuel via SSH.
Le port 80 était fermé dans un premier temps, mais l’essai après ouverture du port 80 sur ma box, est infructueux :
après l’information « http-01 challenge for xxxx.ddns.net », il est indiqué
"
All renewals failed. The following certificates could not be renewed:
/etc/letsencrypt/live/xxxx.ddns.net/fullchain.pem (failure)."
De plus, en ayant simplement refermé le port 80, mon jeedom n’est plus accessible via internet, ni par navigateur, ni par l’appli jeedom connect sur Android). Quel est votre conseil pour une solution pérenne.? Faut-il détruire et recréer un certificat au moins pour repartir sur 90 jours ?
En complément, adresse IP mentionnée dans le log correspond bien à celle du nom de domaine No-IP courant et l’état lu dans la box.
En dernière minute, je viens de m’apercevoir que le nom de domaine NoIP dédié à Jeedom, n’était plus présent dans la livebox 5 (sans intervention de ma part). La re-création n’est pas possible, NoIP étant grisé de même que toutes les autres solutions DNS dynamique. En précision, j’ai déjà un nom de domaine NoIP pour un autre équipement qui est actif. Depuis un mois (date d’installation de jedom, les deux domaines fonctionnaient. Orange aurait-il changé qqchose ??
Merci par avance.
Utiliser les DNS Jeedom
C’est peut-être une solution, mais étant donné que tout fonctionnait jusque là, ce serait un ultime recours. Utilisant No-IP depuis des années et avec jeedom depuis un à 2 mois, je ne vois pas comment ajouter de l’hétérogénéité améliorerait la maintenance. Mon autre équipement fonctionnerait-il encore, le blocage étant au niveau de la box.
Avec le DNS Jeedom, aucun renouvellement, rien à ouvrir sur la box internet.
Là vous avez réussi à faire fonctionner 2 mois, en gros vous avez réussi a générer un certificat valable 3 mois.
Au bout de 2, cela vous prévient qu’il va expirer et vous êtes en difficulté pour le 1er renouvellement, qui se reproduira la prochaine fois aussi.
Donc où vous arrivez à acquérir la compétence, où vous oubliez cet aspect avec la solution que propose Jeedom.
C’est un choix.
Bonjour
Après ouverture du port 80, en root, en CLI que donne la commande :
certbot renew
ou
sudo certbot renew
Cordialement
Trois remarques:
-
si tu souhaites passer par un nom de domaine, ce que je te conseille, c’est très fiable, envisage l’achat d’un. C’est quelques chose comme quelques euros par an, si tu n’es pas exigeant sur le nom, et tu auras tout un panel de services, et surtout des vrais A et CName que tu peux gérer.
-
es tu en mesure de vérifier que tes ports 80 et 443 sont bien ouverts et surtout redirigés vers ton serveur Apache de Jeedom ?
-
tu devrais passer par un challenge DNS, si ton prestataire noIP le supporte, ce qui permettrait un renouvellement avec un challenge bien plus fiable.
Bonjour,
J’ai vérifié que ma box était accessible et que le port 80 était ouvert vers le RaspBerry via un service Web et que respectivement le port n’était pas ouvert quand je le fermais dans ma box.
La commande sudo certbot -v renew retourne :
Processing /etc/letsencrypt/renewal/xxxxx.ddns.net.conf
Certificate is due for renewal, auto-renewing…
Plugins selected: Authenticator apache, Installer apache
Renewing an existing certificate for xxxx.ddns.net
Performing the following challenges:
http-01 challenge for xxxx.ddns.net
Waiting for verification…
Challenge failed for domain xxxx.ddns.net
http-01 challenge for xxxx.ddns.net
Certbot failed to authenticate some domains (authenticator: apache). The Certificate Authority reported these problems:
Domain: xxxx.ddns.net
Type: connection
Detail: 86.242.vvv.tt: Fetching http://xxxx.ddns.net/.well-known/acme-challenge/CHaIifYdVKjEPNizxR5P8JzPQnBJPtua59ZrR2ElEok: Timeout during connect (likely firewall problem)
Hint: The Certificate Authority failed to verify the temporary Apache configuration changes made by Certbot. Ensure that the listed domains point to this Apache server and that it is accessible from the internet.
Cleaning up challenges
Failed to renew certificate xxxx.ddns.net with error: Some challenges have failed.
All renewals failed. The following certificates could not be renewed:
/etc/letsencrypt/live/xxxx.ddns.net/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
J’utilise NoIP depuis 10 ans pour un autre équipement de mon réseau.
Pour jeedom, il a fallu créer un autre nom de domaine chez NoIP et déclarer un DNS dynamique supplémentaire dans la livebox 5.
Cela a marché 2 mois environ.
Il semblerai que la tentative de renouvellement avec le port 80 fermé a invalidé le certificat.
Pensez-vous que la destruction de celui-ci (sans réinstallation Apache) et sa re-création pourrait résoudre (temporairement) le pb ?
Fait assez étonnant, le domaine pour jeedom a été supprimé de la livebox et la recréation est impossible : tous les dns dynamiques sont grisés. Par contre pour le moment, ma livebox / jeedom est encore accessible via le Web avec le nom de domaine ou avec l’adresse IP externe de jeedom. Apparemment l’adresse dynamique de la box n’a pas changé. Je ne pense donc pas que ce soit lié à mon problème initial de certificat.
Tu as une option
certbot certonly --debug-challenges
pour essayer de collecter plus d’information.
Tu as bien vérifier que l’adresse IP que tu as masquée est ton adresse IP publique actuelle ?
En utilisant https://www.digwebinterface.com/
mon nom de domaine est accessible.
L’IP renseignée est bien celle fournie par la box à NoIP (vérifié aussi dans la box).
Par ailleurs, je n’ai rien changé de la configuration qui fonctionnait, à part la demande manuelle de renouvellement via PuTTy (en mode admin).
Par ailleurs, j’ai testé avec
sudo certbot certonly --debug-challenges
Même pb :
Certbot failed to authenticate some domains (authenticator: apache). The Certificate Authority reported these problems:
Domain: xxxx.ddns.net
Type: connection
Detail: 86.242.vvv.tt: Fetching http://xxxx.ddns.net/.well-known/acme-challenge/A9Lgt6IVcqvx673vEJQPOTTC5_Nl5spWM7yOYLDdukE: Timeout during connect (likely firewall problem)
Hint: The Certificate Authority failed to verify the temporary Apache configuration changes made by Certbot. Ensure that the listed domains point to this Apache server and that it is accessible from the internet.
Some challenges have failed.
J’ai envie de relancer une création de certificat via le tuto a partir de :
sudo apt-get remove certbot
Qu’en pensez vous ?
j’ai aucune idée de quel tuto on parle mais ca fait bien longtemps que certbot s’installe via snap et pas avec apt, donc je me méfierai !
Ces instructions là ?
J’ai bien installé avec snap, mais le tuto indique qu’en cas de doute sur la présence d’un ancien certificat généré pour une vielle version jeedom, on pouvait lancer la cde
cf.
Supprimez ensuite certbot-auto s’il est installé (notamment pour ceux qui utilisaient certbot-auto pour générer leur certificat) :
Cette commande n’est peut-être pas adaptée à la suppression d’un certificat récent.
le tuto viens de jeedomizer
NB : la cde suivante est :
Installez ensuite Certbot :
sudo snap install --classic certbot
si je lance la vérification qui suit, j’obtiens :
sudo ln -s /snap/bin/certbot /usr/bin/certbot
ln: impossible de créer le lien symbolique ‹ /usr/bin/certbot ›: Le fichier existe
Ce tuto donc:
Il n’est pas récent.
Et pas en lien direct avec ce forum ou community.
Il faut le suivre dans l’ordre.
La commande ln ne vérifie absolument pas que certbot est fonctionnel. Elle ne fait que créer une commande accessible aux utilisateurs.
Si tu fais ‹ which certbot ›, il te dira qu’elle est la commande certbot qui est utilisée
Apparemment le tuto que j’avais et ton lien (que j’avais aussi parcouru) précisent la même chose.
which certbot retourne :
/usr/bin/certbot
Ne faudrait-il pas recommencer sur une conf propre à partir de :
sudo apt-get remove certbot ?
Une fois le certif paramétré, tu peuxt’inspirer de ca pour la gestion : Tuto : Gestion du renouvellement d'un certificat Let's Encrypt via scenario Jeedom
POur ma part, concernant l’installation j’utilise ces commandes (en ettant sur que tous les certif existants sont supprimer, ainsi qu’un éventuel cerbot installé via apt
Sans challenge DNS
sudo apt-get install snapd
sudo snap install certbot --classic
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly -d ton.superdomaine.fr
sudo certbot --apache
Avec Challenge DNS
sudo apt-get install snapd
sudo snap install certbot --classic
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo snap set certbot trust-plugin-with-root=ok
sudo snap install certbot-dns-ovh
mkdir -p ~/.secrets/certbot
sudo nano ~/.secrets/certbot/ovh.ini
Puis rentrer les clés API
sudo certbot certonly --dns-ovh --dns-ovh-credentials ~/.secrets/certbot/ovh.ini -d ton.superdomaine.fr
sudo certbot --apache
Norbert
J’ai exécuté la première solution lors de l’installation initiale et cela avait marché.
Je viens de réessayer sans la réinstallation de snap
à partir de « sudo apt-get remove certbot »
J’obtiens « Le paquet « certbot » n’est pas installé, et ne peut donc être supprimé »
puis :
sudo snap install --classic certbot
retourne :
snap « certbot » is already installed, see ‹ snap help refresh ›
Du coup, je ne comprends pas pourquoi une commande me dit que certbot n’est pas insatllé et que la suivante me dit le contraire.
sudo ln -s /snap/bin/certbot /usr/bin/certbot
ln: impossible de créer le lien symbolique ‹ /usr/bin/certbot ›: Le fichier existe
jeedom@jeedom:~
$ sudo certbot --apache
me propose un refresh du certificat avec mon nom de domaine qu’il retrouve mais qui n’aboutit pas.
La config parait bancale, mais je ne sais pas comment repartir à zéro. Faut-il réinstaller snap ?
Je te le redis, ln -s n’indique en aucune façon que certbot n’est pas installé ou pas fonctionnel.
C’est juste la création d’un lien symbolique, pour que la commande soit accessible aux utilisateurs.
Si ça te dit que le lien symbolique existe déjà c’est qu’il a déjà été créé donc que tu as déjà exécuté cette étape.
Ce n’est en aucun cas une étape de vérification, elle crée un lien sur le système.
Pour moi ton certbot est parfaitement fonctionnel.
Par contre probablement qu’il ne deploie pas le certificat. Où que tu n’as pas redémarré apache. Où que tu n’as pas défini un post hook pour le faire
Bonjour
Je pense que tu dois reprendre tout à zéro :
1- savoir si tu a un certificat et si il est valide :
sudo certbot certificates
2- Savoir comment a été installé certbot :
dpkg --list
Si certbot est dans la liste et qu’il y a « ii » à gauche c’est qu’il est installé en mode normal c’est a dire avec apt install
snap list
Si certbot est dans la liste c’est qu’il est installé en mode snap
Déjà tu y verras plus clair.
Pour effacer le certificat :
sudo certbot delete --cert-name www.mondomaine.com
Tu pourras après choisir le mode d’installation de certbot.
Cordialement
Merci pour la réponse.
J’essayerai demain.
Bonsoir.
Bonjour,
sudo certbot certificates renseigne bien un certicat un mon domaine, date d’expiration dans 14 jours
snap list liste bien certbot
J’ai détruit le certicat via :
sudo certbot delete --cert-name xxxx.ddns.net
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The following certificate(s) are selected for deletion:
* xxxx.ddns.net
WARNING: Before continuing, ensure that the listed certificates are not being
used by any installed server software (e.g. Apache, nginx, mail servers).
Deleting a certificate that is still being used will cause the server software
to stop working. See https://certbot.org/deleting-certs for information on
deleting certificates safely.
Are you sure you want to delete the above certificate(s)?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Deleted all files relating to certificate
Après, cela semble étonnant :
jeedom@jeedom:~ $ sudo snap install --classic certbot
snap "certbot" is already installed, see 'snap help refresh'
jeedom@jeedom:~ $ sudo ln -s /snap/bin/certbot /usr/bin/certbot
ln: impossible de créer le lien symbolique '/usr/bin/certbot': Le fichier existe
J’ai essayé :
jeedom@jeedom:~ $ sudo certbot certonly -d xxxx.ddns.net
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Error while running apache2ctl configtest.
Action 'configtest' failed.
The Apache error log may have more information.
AH00526: Syntax error on line 9 of /etc/apache2/sites-enabled/000-default-le-ssl.conf:
SSLCertificateFile: file '/etc/letsencrypt/live/xxxx.ddns.net/fullchain.pem' does not exist or is empty
How would you like to authenticate with the ACME CA?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Apache Web Server plugin (apache) [Misconfigured]
...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The selected plugin encountered an error while parsing your server configuration
and cannot be used. The error was:
Error while running apache2ctl configtest.
Action 'configtest' failed.
The Apache error log may have more information.
AH00526: Syntax error on line 9 of
/etc/apache2/sites-enabled/000-default-le-ssl.conf:
SSLCertificateFile: file '/etc/letsencrypt/live/xxxx.ddns.net/fullchain.pem'
does not exist or is empty
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
puis la question apache, ou http,ou xxx est reposée.
Effectivement, le répertoire à mon nom de domaine n’existe pas :/etc/letsencrypt/live/xxxx.ddns.net. dans live, il n’y a que les conf par defaut : « …default… »
comme si le certificat n’avait pas été créé
J’ai l’impression que conformement à la mise en garde au moment du delete, la config apache n’est plus bonne.
par ailleurs « /var/log/letsencrypt/letsencrypt.log », je ne parviens pas à rentrer dans le repertoire letsencrypt qui a des droits « root » drwx------- du groupe adm .
Quelle solution ?