Renouvellement de certificat SSL impossible sur NGINX

Merci Golfvert

J’ai cependant poursuivi à essayer de comprendre ce qui se passait dans Nginx Proxy Manager. J’ai récupéré les détails de l’erreur interne, ci-dessous:

Error: Command failed: /usr/bin/certbot certonly --non-interactive --config « /etc/letsencrypt.ini » --cert-name « npm-23 » --agree-tos --email « xxx@yyy.fr » --preferred-challenges « dns,http » --domains « ha-xxx.duckdns.org »
Saving debug log to /data/logs/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Performing the following challenges:
http-01 challenge for ha-xxx.duckdns.org
Using the webroot path /data/letsencrypt-acme-challenge for all unmatched domains.
Waiting for verification…
Challenge failed for domain ha-xxx.duckdns.org
http-01 challenge for ha-xxx.duckdns.org
Cleaning up challenges
Some challenges have failed.

at ChildProcess.exithandler (child_process.js:308:12)
at ChildProcess.emit (events.js:315:20)
at maybeClose (internal/child_process.js:1048:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)

Quelqu’un aurait-il une idée de la signification de cette erreur ?
Merci d’avance

J’ai fini par tout réinstaller, y compris MariaDB (c’est là que NGINX stocke des données)… et ça refonctionne.

Bonsoir,
J’ai eu un mail me disant que le certificat let’s encrypt allais expirer au 25 décembre cela fera trois mois que j’utilise Nginx proxy manager avec duck dns.
J’ai voulu anticiper et renouveler le certificat en allant sur l’interface NPM mais j’ai un message d’erreur qui me dit erreur interne.
C’est la première fois que j’ai le cas car je viens d’installer Nginx, pouvez vous me dire si le certificat va se renouveler tout seul et si oui combien de temps avant la date butoir?
Merci par avance de vos retours et bonne soirée

Salut,

ça me semble difficile de se prononcer sans les précisions sur l’erreur (et les logs)… En l’état ça revient à dire : j’ai pas réussi à démarrer la voiture ce matin, mais puis-je aller au boulot avec demain après-midi ?
Dernier détail, c’est pas parce que le certificat est périmé que c’est complétement pas fonctionnel et que tout s’arrête

Salut,
Je suis débutant sur le sujet :slight_smile: je n’ai pas d’erreur dans les logs c’est juste que j’ai reçu un mail de let’s encrypt ce matin me disant que mon certificat expirait dans 10 jours et que je devait le renouveler et dans le mail il conseillait un renouvellement automatique (30 jours avant la fin) mais je ne sais pas si NGINX proxy manager le gère en auto ou si je dois le faire en manuel ! c’est juste pour anticiper.

Je ne pourrais plus y accéder à distance par l’appli mobile par exemple si le certificat n’est plus valide si?

C’est pas exactement formulé ainsi dans ton message précédent ?

Dans tous les cas, c’est quand même ce dernier message qu’il faut analyser et creuser…

Si ça fonctionnera toujours, tu vas avoir des alertes et des avertissements en pagaille mais techniquement ça ne bloque pas.
De toute façon, tu n’en es pas encore là

Merci mais je préfère anticiper plutôt que de me retrouver le bec dans l’eau si je peux :wink:

Si d’autres qui utilisent NGINX PM peuvent me dire combien de jour avant la date le certificat se renouvelle en auto ?

Merci et bonne soirée

Justement c’est pour ça qu’il faut aller chercher les logs (que tu as forcement, rien que par le fait tu as déclenché une tentative à la main)

Let’s encrypt (l’autorité qui signe ton certificat), autorise le renouvellement 30j avant la date d’expiration… Le tien expirant dans 10 jours et la demande n’ayant abouti, c’est qu’il y a un souci.

Je viens de voir cette erreur dans le journal de NGINX proxy manager :

[12/15/2021] [7:49:48 PM] [SSL      ] › ✖  error     Error: Command failed: /usr/bin/certbot renew --non-interactive --quiet --config "/etc/letsencrypt.ini" --preferred-challenges "dns,http" --disable-hook-validation  
Challenge failed for domain XXX.duckdns.org
Failed to renew certificate npm-1 with error: Some challenges have failed.
All renewals failed. The following certificates could not be renewed:
  /etc/letsencrypt/live/npm-1/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s)
    at ChildProcess.exithandler (child_process.js:308:12)
    at ChildProcess.emit (events.js:315:20)
    at maybeClose (internal/child_process.js:1048:16)
    at Socket.<anonymous> (internal/child_process.js:439:11)
    at Socket.emit (events.js:315:20)
    at Pipe.<anonymous> (net.js:673:12)

Merci par avance de ton aide je suis novice et je ne comprends pas trop d’où ça vient…

ça c’est l’explication du pourquoi le certificat n’est pas renouvelé … pour valider un certificat il y a une vérification qui est faite le (le challenge), et ça échoue

Donc 2 challenges : le premier DNS => vérifier une entrée aléatoire dans le DNS. Le second HTTP => répondre sur le port 80
Il faut regarder :

  • qu’il n’y a pas plusieurs certificats qui sont en cours / plusieurs configurations cote nginx PM
  • que le port 80 est bien ouvert sur ta box et renvoyé vers le 80 de nginx PM
  • que ton adresse DNS est à jour (mais c’est déjà probable puisque ton accès distant fonctionne), mais duckdns est à vérifier quand même

Utilisateur depuis +6mois de NPM, je ne l’ai jamais vu renouveller automatiquement les certificats.

Je passe par une tâche cron qui envoit la commande au container Docker de renouveler les certificats…

Je vais essayer de creuser la chose…

Edit:

Voila : Certificate renewal not working · Issue #109 · NginxProxyManager/nginx-proxy-manager · GitHub

Apparemment toutes les 12h…

Mais j’ai pris la commande est l’est passée dans une tâche cron

Plus ici :

je vais voir si cela se met à jour avec l’ouverture du port 80

Visiblement ouverture du port 80 et redémarrage de Home assistant à résolu le problème le certificat c’est renouvelé pour 3 mois. Je vais quand même surveiller les journaux.

Merci pour votre aide.

Dans le tuto : https://forum.hacf.fr/t/acces-de-l-exterieur-en-https-avec-nginx-proxy-manager/1761
Il faudrait peut être enlever cette partie si cela bloque par la suite le renouvellement qu’en pensez vous?

Nettoyage

La redirection du port 80 n’étant plus nécessaire, il est bon de la supprimer.

1 « J'aime »

@Pozzi semblait dire que le challenge passait par le 443 ensuite… apparemment non…

Mais dans tous les cas, tu devrais utiliser le challenge DNS plutôt que HTTP.

Ca a le mérite de ne pas laisser ouvert ce port.

Pour cela, recréé un certificat et choisis la validation DNS et choisis DuckDNS dans la liste et renseigner les champs demandés.

Le challenge DNS c’est bien mais ça a d’autres problèmes:

  • la config est pas simple (comparé à rien pour le challenge HTTP)
  • ça impose d’avoir la main sur tout le DNS/domaine (pour créer une entrée TXT)… c’est pas possible avec les ducksdns et autres machins gratuits
  • pour placer l’entrée dynamiquement, il faut passer par une api, et donc fournir quelques crédenciales

Donc perso le challenge DNS c’est bien au boulot, mais chez Mme Michu… bof

Quant à l’ouverture du port 80, pour peu qu’il soit redirigé vers le 443 pour forcer le HTTPS, c’est pas plus pire que de laisser le 443. On aura juste les même attaques en tentatives sur les 2 ports à la fois au lieu d’un.

Mais dans tous les cas, tu devrais utiliser le challenge DNS plutôt que HTTP.
Ca a le mérite de ne pas laisser ouvert ce port.
Pour cela, recréé un certificat et choisis la validation DNS et choisis DuckDNS dans la liste et renseigner les champs demandés.

Désolé je suis vraiment débutant mais tu fait ça comment?
Il faut changer dans le fichier config.yaml? dans NGINX proxy manager?
merci

Si, le challenge DNS est possible avec DuckDNS justement :wink

OK autant pour moi alors…

Pour le renouvellement, on en parlait ici :

https://forum.hacf.fr/t/certificat-lets-encrypt/4263/4?u=clemalex

Mais personnellement, je pense comme toi sur l’ouverture ou non du 80 (mais ces derniers temps tout le monde veut les fermer c’est pour cela que je dis de passer par le challenge)

Pour le néophyte, le challenge DNS prends plus de temps à mettre en place c’est sur ! :wink:

1 « J'aime »