NGINX fonctionne-t-il en HAOS?

Mon problème

Bonjour à tous,
voilà plusieurs jours (et nuits) que je me débats avec la configuration Nginx Proxy Manager, en suivant les tutos, en installant et réinstallant les modules, rien n’y fait, je n’y arrive pas… je finis par me demander si cette solution est stable et fonctionnelle, car j’arrive à une situation où les erreurs ne se reproduisent pas de la même façon selon qu’on est sur un mobile, un Firefox ou un Edge…

je m’explique… rembobinons la séquence :

1/ Première tentative d’installation en suivant le tuto… je bloque au niveau du passage en https avec de internal errors lors de la création de certificat. Je passe en tentative de création d’un wild certificat, temps perdu, ça ne fonctionne pas mieux, malgré plusieurs tentatives…

2/ je décide de tout nettoyer et de repartir de 0 (désinstallation de Nginx Proxy Manager, de MariaDB, nettoyage de config.yaml, et aussi, suppression de différents add-ons (let’s Encrypt entre autres).
Redémarrage, puis suivi à la lettre du tuto… jusqu’à la fin de l’étape :
image

Jusque là, tout va bien.
On passe ensuite à :

« Testez si vous pouvez accéder à votre Home Assistant via votre nom de domaine en HTTP en cliquant sur le nom de votre domaine dans la colonne SOURCE. »

Et là, tout faux ! Au lieu de tomber sur HA, je tombe sur la page d’accueil de Nginx

J’essaye les identifiants Nginx, retour « bad request »
Ceux de HA, sait-on jamais, dans la mesure où j’ai fait la redirection http sur 8123, ça pourrait être un contrôle d’accès à HA géré par Nginx… non, quoique je fasse je reste en « bad request »…
Je change de navigateur sur la même machine, et là je récupère une erreur 400: Bad Request…
Je change la redirection de port en remplaçant 8123 par 81, je retombe sur la page d’accueil Nginx, mais cette fois, avec les identifiants Nginx, j’arrive à me connecter.

Donc, si je comprends bien le problème, NGINX ne voit pas HA.

Je n’ai même pas pu dépasser cette fois ce simple stade du http…

des idées ?
Merci d’avance :wink:

Le tutoriel d’origine

https://forum.hacf.fr/t/acces-de-l-exterieur-en-https-avec-nginx-proxy-manager/1761/

Ma configuration


System Health

version core-2021.7.4
installation_type Home Assistant OS
dev false
hassio true
docker true
virtualenv false
python_version 3.9.5
os_name Linux
os_version 5.10.45
arch x86_64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4858
Installed Version 1.13.2
Stage running
Available Repositories 908
Installed Repositories 20
Home Assistant Cloud
logged_in false
can_reach_cert_server pending
can_reach_cloud_auth pending
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 6.1
update_channel stable
supervisor_version supervisor-2021.06.8
docker_version 20.10.6
disk_total 30.8 GB
disk_used 4.3 GB
healthy true
supported true
board ova
supervisor_api ok
version_api pending
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 13
views 8
mode storage

Bon un sujet dédié pour toi alors :wink:

Pour commencer, ne va plus alimenter les autres sujets :+1:

On reprend tout :

  1. Quel Opérateur Internet ?
  2. Quelle Box ?
  3. Quel fournisseur de nom de domaine ?
  4. Capture d’écran de la redirection des ports au niveau de ta Box
  5. Capture d’écran de la vue Proxy Hosts de Nginx Proxy Manager (NPM) :warning: masquer les nom de domaines
  6. Capture d’écran de la configuration de la redirection de HA :warning: masquer les noms de domaines

C’est étrange comme comportement, tu n’as pas une redirection au niveau de ta box du 80 vers le 81 ?

Pas de connexion avec la base de données car Nginx est perdu dans le réseau.

Non ce n’est pas comme ça que ça marche. Il faut au minimum se documenter sur les outils que l’on met en place :wink: pour savoir ensuite les configurer et connaitre leur comportement. Un tutoriel aide à la mise en place mais une séance de recherche est toujours souhaités.
Il existe un contrôle d’accès au niveau de NPM afin de confirmer l’identité et de valider la redirection, cela se passe avec les Access Lists (dernier champ qui est configuré sur Publicly Accessible et où les options se configurent dans la vue Access Lists)

J’attends toutes tes réponses aux questions :+1:

voici les réponses :

Quel Opérateur Internet ? RED by SFR
Quelle Box ? Box SFR NB6V-SER-r0
Quel fournisseur de nom de domaine ? OVH

Capture d’écran de la redirection des ports au niveau de ta Box

Capture d’écran de la vue Proxy Hosts de Nginx Proxy Manager (NPM) :warning: masquer les nom de domaines>

Capture d’écran de la configuration de la redirection de HA :warning: masquer les noms de domaines

C’est étrange comme comportement, tu n’as pas une redirection au niveau de ta box du 80 vers le 81 ?"

Non, pas à ma connaissance

"Non ce n’est pas comme ça que ça marche. Il faut au minimum se documenter sur les outils que l’on met en place :wink: pour savoir ensuite les configurer et connaitre leur comportement.> "

Oui, c’est ce que j’ai fait, mais les docs que j’ai trouvées ne sont pas vraiment explicites ni sur l’architecture ni sur les comportements… peut-être mal cherché ? ça ne fait qu’une semaine que je cherche à dompter HA, peut-être encore trop novice ??? :innocent: :innocent:

En tous cas, merci pour ton aide !

Si tu veux, tu peux faire l’essai suivant:

  1. Ouvrir un compte gratuit sur DuckDNS et ajouter un sous-domaine en pointant ton @ip Internet dessus.
  2. Dans NPM, faire une redirection vers ha (ca donnera quelque chose du genre pour la redirection: homeassistant.<NOM_DE_DOMAINE>.duckdns.org )
  3. Tester

DuckDNS est assez intuitif avec NPM.
Si cela fonctionne, cela veut dire que le soucis se situe côté OVH.

As tu dans ton interface d’administration OVH créé la redirection dans l’onglet Zone DNS ?

J’ai créé la redirection dans l’onglet DynHost, pas dans l’onglet Zone DNS

J’ai créé le domaine sur duckdns et fait la redirection de la façon suivante :

ça ne fait pas exactement ce que tu disais : homeassistant.<NOM_DE_DOMAINE>.duckdns.org

Avant la redirection, j’ai testé .duckdns.org, et j’arrivais bien sur NPM :

Après la redirection, j’ai l’erreur 400: bad request.

Peut-être que la redirection que j’ai faite de façon classique ne correspond pas à ce que tu avais imaginé ?

Ajoute ces lignes dans la configuration de HA :

http:
    use_x_forwarded_for: true
    trusted_proxies:
        - 172.0.0.1/8
        - 192.0.0.1/8

Et réessaye l’accès de duckdns.

Je n’arrive pas à passer la config que tu me proposes:
« Invalid config for [http]: not a valid value @ data[‹ http ›][‹ trusted_proxies ›][0]. Got ‹ 172.0.0.1/8 ›
not a valid value @ data[‹ http ›][‹ trusted_proxies ›][1]. Got ‹ 192.0.0.1/8 ›. (See /config/configuration.yaml, line 6). »

j’ai vérifié la syntaxe, elle semble bonne
image

Indépendamment de cette manip que je n’arrive pas à passer, ce qui me semble bizarre, c’est qu’en connexion avec des noms de domaine différents on n’obtient pas le même comportement :
1/ Depuis la page proxy de Nginx, en cliquant sur le nom de domaine historique OVH, j’arrive sur la page Nginx, et en cliquant sur le nom de domaine duckdns, je tombe sur une page erreur 400 : bad request.
2/ depuis un navigateur, en pointant le nom de domaine historique OVH, j’arrive sur une page « Cette page n’est pas disponible pour le moment xx.xx.fr n’a envoyé aucune donnée », et en pointant le nom de domaine duckdns, je tombe sur la même page erreur 400 : bad request.

N’y aurait-il pas un cache à purger au niveau de Nginx ?

OUPS !

Mets :

http:
    use_x_forwarded_for: true
    trusted_proxies:
        - 172.0.0.0/8 # 0 au dernier digit au lieu de 1 !!
        - 192.0.0.0/8

Si j’applique la configuration que je t"ai donnée je n’accède pas à Home Assistant !
Mais dans le log de configuration.yaml home-assistant.log j’ai le message suivant :

2021-08-02 11:46:41 ERROR (MainThread) [homeassistant.components.http.forwarded] Received X-Forwarded-For header from an untrusted proxy AAA.BBB.CCC.DDD

Du coup, je reprends la configuration et mets :

http:
    use_x_forwarded_for: true
    trusted_proxies:
        - AAA.BBB.CCC.DDD

Je relance HA et ça fonctionne.

Ne désespère pas…

Au besoin, on passera sur Discord un soir pour un partage d’écran et une assistance en Live :+1:

Bon, ça progresse… mais pas complètement. quand je lance mon .duckdns.org depuis Nginx, j’arrive bien sur la page HA… MAIS je ne peux pas me logger (Nom d’utilisateur ou mot de passe invalide), malgré vérifications et essais parallèles fructueux.

1 « J'aime »

Active dans Nginx, dans la configuration du proxy l’option Websockets Support

C’est déjà bien activé

Du coup, je reprends la configuration et mets :

http:
    use_x_forwarded_for: true
    trusted_proxies:
        - AAA.BBB.CCC.DDD

et moi ça ne passe pas en configuration

Fais voir le log…


[quote=« Clemalex, post:10, topic:5557 »] :grinning: :wave:
Au besoin, on passera sur Discord un soir pour un partage d’écran et une assistance en Live :+1:
[/quote]

:wave: :grinning:
Pas de problème pour moi si ça ne te dérange pas…

Fais voir le log…

Invalid config for [http]: not a valid value @ data[‹ http ›][‹ trusted_proxies ›][0]. Got ‹ AAA.BBB.CCC.DDD ›. (See /config/configuration.yaml, line 6).

Bein faut pas mettre AAA. BBB. CCC. DDD mais le remplacer par ton IP :sweat_smile:

oui, c’est mieux :grinning: pour la config…
MAis je retombe sur la page 400 bad request :thinking:

Nota : comme je suis en HA OS, j’ai mis l’@de l’hôte HA comme @IP

et faut mettre le port 8123 a destination