Renouvellement de certificat SSL impossible sur NGINX

Mon problème

Mon certificat SSL sur Duckdns étant arrivé à expiration (ce jour), je l’ai renouvelé sur le site duckdns, puis j’ai tenté de de mettre à jour le certificat côté client via NGINX PM… et là, impossible, il me sort une erreur interne.
J’ai même créé un nouveau sous domaine sur Duck, mis à jour NginxPM, idem, au moment de récupérer le certificat SSL, erreur interne de NGINXPM. Jusque là, tout fonctionnait nickel !!! Dommage… :face_with_head_bandage: :disappointed_relieved:
Quelqu’un peut-il m’éclairer ? :boom:

Ma configuration

version core-2021.10.4
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.7
os_name Linux
os_version 5.10.70
arch x86_64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 5000
Installed Version 1.15.2
Stage running
Available Repositories 952
Installed Repositories 21
Home Assistant Cloud
logged_in false
can_reach_cert_server failed to load: timeout
can_reach_cloud_auth failed to load: timeout
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 6.5
update_channel stable
supervisor_version supervisor-2021.10.6
docker_version 20.10.7
disk_total 30.8 GB
disk_used 8.3 GB
healthy true
supported true
board ova
supervisor_api ok
version_api failed to load: timeout
installed_addons File editor (5.3.3), Samba share (9.5.1), Terminal & SSH (9.1.3), Mosquitto broker (6.0.1), Somfy Protexial IO - Proxy (0.7.1), Somfy Protexial IO - Gateway (0.8.1), MariaDB (2.4.0), Nginx Proxy Manager (0.11.0)
Lovelace
dashboards 2
resources 14
views 9
mode storage
___

C’est quel message exactement? Changer un certificat sur NGINX, normalement, c’est transparent.
Et comment tu le mets en place? Je n’utilises pas NGINXPM mais NGINX « simple ». Donc, je copie les nouveaux certificats à la main au bon endroit, un redémarrage et tout roule…

Bonjour Golfvert,

Le message renvoyé par NginxPM est « Internal Error »

Dans Nginx PM, je sélectionne mon sous-domaine, je fais « modifier », puis dans l’onglet SSL, « request a new SSL Certificate ».

A quel endroit les copies-tu ?

merci de ton aide

Ca semble être un problème assez courant sur le forum anglais… Voir par exemple Unable to get SSL cert from Nginx Proxy Manager. Getting Internal Error - Home Assistant OS - Home Assistant Community
Il semblerait que le problème soit lié à un forward de ports sur le routeur/box à l’entrée de ton réseau. As tu enlevé/changé des règles après l’installation initiale?
Et vu le fonctionnement de Nginx PM l’option manuelle ne semble pas possible (ou en tout cas pas documentée). La gestion des certificats est semble t il automatique, sauf quand ça foire :frowning:
Donc, ma seule piste, c’est un souci de forward de ports sur le box…

J’ai posté un sujet sur le forum anglais pour être tenu au courant.
J’ai vérifié la redirection de ports sur ma box, rien n’y fait.
Tu utilises NGINX « simple ». Comment fais-tu ? Penses-tu que je pourrais modifier ma config dans ton sens pour me permettre de rentrer le certificat au bon endroit à la mano?

J’ai vu.
Ce qui est bien avec les clickodromes peu ou mal documentés comme NGINX PM, quand ça marche, c’est super cool et quand ça marche pas, bah, c’est tellement bien caché que c’est cuit… Donc, j’évite :slight_smile:

Je n’utilise pas NGINX comme proxy pour permettre des connexions entrantes comme ce que tu fais, mais, (entre autre) pour un proxy HTTPS → HTTPS local.

La config ressemble à:

server
{
        satisfy any;
        allow 127.0.0.1;
        allow 192.168.193.0/24;
        allow 192.168.192.0/24;
        deny all;
        listen      443;
        ssl on;
        server_name hassio.mondomaine.me;
        location /
        {
                proxy_pass  http://192.168.192.150:8123/;
        }

        ssl_certificate         /etc/cloudflare/mondomaine.me.pem;
        ssl_certificate_key     /etc/cloudflare/mondomaine.me.key;
}

En plus, j’ai mon propre domaine, donc, je n’utilise pas let’s encrypt mais cloudflare qui permet de générer des certificats de 15 ans (et pas trois mois…).

Mes accès externes entrants ne sont possibles qu’au travers d’un VPN géré sur mon firewall opnsense.
Ma config ne ressemble pas vraiment à ce que tu as…

Pas être (raisonnablement) sûr que le problème vient de la redirection de ports, quand tu accèdes chez toi avec le nom duckdns sur 443 et 80, tu as des réponses? Un truc dans les logs?

L’option « magique » de suppression de l’addon NPM et réinstallation, des fois ça aide.

Quand je me connecte via mon nom de domaine, j’arrive bien sur HA après avoir contourné l’avertissement de sécurité sur le certificat. Mais je ne peux pas me connecter…
Je vais essayer de trouver où sont stockés les certificats dans NGinx PM pour le changer à la main…

Normal.

Ca, ce n’est pas bon signe. Ce ne serait donc pas qu’un problème de certificat.

C’est là ou ça risque de coincer. Si le truc est fait proprement, la date de validité du certificat est aussi stockée dans la base de données de NPM. Et donc, mettre des certificats à la main si le reste n’est pas cohérent, ça peut faire des trucs bizarres.
Tu as tenté suppression/installation? Les symptomes feraient presque penser à la base de données de NPM vérolée…

Ce n’est pas comme ceci que fonctionne le renouvellement :

Sans titre

:warning: le bandeau n’apparaît pas sur mobile… :wink:

Pour en revenir à ton problème, tu utilises quoi comme méthode de validation ?

Tu dois avoir le port 80 de ta box/routeur redirigé vers ton @ip:80 hébergeant l’add-on.

Si tu es sous DuckDNS, tu devrais pouvoir utiliser le challenge DNS qui ne nécessite pas d’ouverture de port.

1 « J'aime »

Bonjour Clemalex
Oui, le port 80 est bien redirigé vers mon home assistant, ainsi que le 443.
Sinon, comment procède t on pour le renouvellement du certificat?
Merci d’avance

J’essaierai ce soir de désinstaller et réinstaller.
Je vous tiens au courant dès que c’est fait…

Qu’entends-tu par là?

Il ne faut pas qu’il soit rediriger vers Home Assistant mais vers l’appareil hébergeant HA (80 → 80)

C’est bien ça, j’ai home assistant sur une VM, et c’est l’IP de la VM

J’ai désinstallé puis réinstallé NginxPM… le canard est toujours vivant (normal avec Duckdns :smiley:). ça ne fonctionne toujours pas.

j’ai appliqué la méthode que tu proposes, et je retombe sur le message « Internal Error »…

Je reprends tout ça demain, à tête reposée …
Merci de votre aide !

Ca ne nous rajeunit pas… Robert Lamoureux

Assurément…

Toujours sur mes recherches de cause…
Je me suis aperçu que même en désinstallant NginxPM, le dossier et les données restent présent dans le répertoire SSL. Donc la désinstallation / réinstallation de Nginx n’a rien nettoyé, et les mêmes causes produisant les mêmes effets…
Question : Peut-on supprimer ce répertoire /SSL/nginxproxymanager sans « douleur » pour pouvoir repartir d’une installation « propre » ?
Et comment le faire (a priori, HA ne veut pas supprimer un répertoire non vide)… ?

Vu que d’après ce que tu dis, ça ne marche plus, il n’y aura rien de plus douloureux, je pense.

Tu as l’addon SSH. Donc, connexion en ssh aller dans le « bon » répertoire et faire un rm -rf *
Attention, c’est la commande qui tue tout se qui dépasse… Le roundup de Linux.

J’ai passé mon HA au Roundup, suivi d’un coup de karcher. Tout nettoyé, tout effacé, plus rien dans le répertoire SSL/nginxproxymanager…
Puis j’ai réinstallé l’add-on (après avoir redémarré, évidemment).
Et là… surprise… je retrouve encore mes redirections ! et toujours une erreur interne quand il s’agit de renouveler le certificat. Je ne pige pas ce qui se passe.
Y a-t-il un autre moyen, compte tenu de ma config, de faire du https sans passer par Nginx PM ? Si vous avez des idées, je suis preneur. Éventuellement passer par NGINX virtualisé sur une VM externe ?

Bizarre tout ça.
Voir l’excellent tuto ici https://forum.hacf.fr/t/acceder-a-home-assistant-a-distance/2744 qui décrit toutes les options (ou presque).