Nginx Proxy Manager connexion locale HTTP ne fonctionne pas

Mon problème

Bonjour à tous,
J’utilise Home Assistant depuis plusieurs mois mais j’ai un soucis avec la connexion HTTP qui ne fonctionne plus depuis que j’ai configurer HTTPS.

J’utilise Duck DNS et Nginx Proxy Manager.
Le HTTPS fonctionne très bien en local et depuis l’extérieur.

Mais en local je ne peux plus accéder à HA en HTTP sur le port 8123.

Cela me cause des problèmes avec certaine intégration qui ne sont pas compatible HTTPS.

Par contre, j’accède bien en HTTP, en interne et externe à l’interface de Nginx Proxy Manager sur le port 81.

J’ai suivi ce tuto: Accès de l’extérieur en HTTPS avec Nginx Proxy Manager

Tout est correct sauf que je n’ai pas de message d’erreur dans les logs avec une IP a mettre dans mon dossier configuration.yaml :


Depuis la 2021.7

Il est maintenant nécessaire d’ajouter des clés dans la configuration de HA afin d’autoriser l’utilisation d’un reverse proxy.

Dans le fichier de configuration de HA configuration.yaml ajouter :

#configuration.yaml

http: #si cette balise n'existe pas, ajoutez la, sinon ajouter seulement la suite (pas de duplication)
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.18.0.1

Si vous avez du mal trouver l’@ip à renseigner, procédez comme suit :

  1. Renseigner l’adresse 10.0.0.1 ou 172.16.0.1 ou 192.168.1.1
    Ces adresses correspondent aux premières @ip privées
  2. Assurez-vous d’avoir accès au log de HA home-assistant.log
  3. Une fois le reverse proxy en fonctionnement, redémarrez HA
  4. Accédez au fichier de log home-assistant.log
  5. Vous verrez apparaitre plusieurs lignes indiquant depuis quelle @ip le reverse proxy est hébergé :
2021-07-10 23:46:36 ERROR (MainThread) [homeassistant.components.http.forwarded] Received X-Forwarded-For header from an untrusted proxy 172.18.0.1
  1. Remplacer l’@IP dans le fichier de configuration par celle que HA vous indique
  2. Redémarrez HA

Je n’ai tout simplement pas ce genre de message:
ERROR (MainThread) [homeassistant.components.http.forwarded] Received X-Forwarded-For header from an untrusted proxy 172.18.0.1 dans mes logs

Je ne sais pas si cela est lié a mon problème HTTP c’est pour cela que je préfère vous le dire.

Voici mes configurations:

Duck DNS
1DuckDNS

Nginx Proxy Manager:
Proxy Host:


3-Nginx Proxy Manager

mon configuration.yaml:

Avez vous une idée de ce que j’ai pas fait ou mal fait?

Je précise que je ne suis pas un expert.

Dans l’attente de votre retour, je vous remercie :slight_smile:

Ma configuration


version core-2022.2.7
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.98
arch x86_64
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 5000
Installed Version 1.22.0
Stage running
Available Repositories 977
Downloaded Repositories 32
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 7.4
update_channel stable
supervisor_version supervisor-2022.01.1
docker_version 20.10.9
disk_total 234.0 GB
disk_used 13.1 GB
healthy true
supported true
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons Samba share (9.5.1), Terminal & SSH (9.3.0), Studio Code Server (4.1.0), MariaDB (2.4.0), Nginx Proxy Manager (0.11.0), Duck DNS (1.14.0), Home Assistant Google Drive Backup (0.105.2), RPC Shutdown (2.2), Mosquitto broker (6.0.1)
Lovelace
dashboards 4
resources 25
views 30
mode storage

Si tu passes par Nginx proxy manager, laisse le gérer les certificats et supprime les lignes :

ssl_key: xxxxx
ssl_certificate: xxxxx

De ton HA qui empêche les connexions http

L’add-on duckdns n’est utile que pour la mise a jour des dns dans ton cas.

Supprime la partie sur les certificats

Merci pour ta réponse Clémalex.

Alors si j’enlève:

ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem

de mon fichier configuration.yaml

J’ai effectivement de nouveau accès en HTTP: http://192.168.1.x:8123

Par contre, je n’ai plus accès en HTTPS en interne et en externe.

Il faut aussi que j’enlève quelques chose dans duckdns?

Je dispose d’un domaine chez OVH, j’imagine que je pourrais me passer complètement de Duck Dns et utiliser mon domaine a la place?
Je l’utilise déjà pour mon NAS (un enregistrement CNAME qui renvoi vers le dyndns de ma box).

Oui via ton ndd ovh tu peux le rediriger vers ton nginxproxymanager qui fera toutes les redirections

Et tu as quoi comme box ?

https://forum.hacf.fr/t/redirection-nginx-proxy-manager-et-ovh/5577?u=clemalex

Au 6 il vaut mieux mettre * au lieu de homeassistant pour ne pas avoir à en créer plusieurs chez ovh.

Et :

https://forum.hacf.fr/t/dns-ovh-livebox/4709/23?u=clemalex

J’ai une livebox et un routeur asus RT-AX68U

Merci clemalex, je vais regarder ca de plus prêt.

Bonjour à vous.

Je n’arrive toujours pas a acceder a mon home assistant depuis l’exterieur en HTTPS depuis que j’ai retirer les lignes dans mon fichier configuration.yaml:
http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem

Mon fichier ressemble a ceci désormais:
2022-02-27 19_47_36-Studio Code Server – Home Assistant

Si je remet ces lignes dans mon fichiers tout refonctionne correctement depuis l’extérieur j’ai accés en HTTPS.
En internet aussi mais pas en HTTP.

Par contre depuis que j’ai enlever ces lignes j’ai de nouveau accès en HTTP en interne http://192.168.1.x:8123

Je ne sais plus quoi faire pour le rendre accessible depuis l’extérieur en HTTPS.

Une idée?

Je vous remercie

Une redirection de port manquante ?

Salut
Sans certificats, c’est juste pas possible de faire du HTTPS donc il faut garder ces lignes

Et en interne, sauf à savoir ressourdre le nom de domaine correctement, sortir pour rerentrer par l’ip publique il faut bidouiller le dns interne ou le fichier hosts. Https en interne, c’est moins indispensable. Mais du coup si tu as du HTTPS en interne aussi tant mieux

Non, j’ai toutes les redirections.

Merci pour ton retour @Pulpy-Luke, je vais remettre les lignes mais du coup en interne je n’ai plus de HTTP.
C’est sur c’est mieux mais j’ai un pont nulki qui ne prend pas en charge le HTTPS.
C’est compliquer, j’aurais preferer utiliser uniquement le HTTPS mais bon…

C’est pas possible dans ton cas : 1 port = 1 protocole. Donc c’est du https partout (avec éventuellement une erreur sur le certificat en interne) ou rien
Sinon ça veut dire qu’il faut que le certificat soit porté par NPM et là tu pourra avoir 2 ports

Il faudrait que @nico39570 tu reprennes tout depuis le début.

lesquelles ? partage les :+1: car il n’en faut qu’une seule… :wink:

Alors j’ai ouvert les ports
80 443 et 8123 vers mon HA.

En laissant ceci dans mon fichier de conf:

http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem
use_x_forwarded_for: true
trusted_proxies:
- 127.0.0.1
- 192.168.1.110

Ca fonctionne bien depuis l’extérieur avec duckdns
NPM est configurer comme ci-dessus dans les captures écrans.

Par contre quand je supprime les lignes:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem

La je n’ai plus accès depuis l’extérieur.
J’ai un message avec un problème de certificat et impossible d’accéder a mon HA, je n’ai même pas la possibilité d’ignorer le message pour y accéder quand même.

J’ai essayé de tous désinstaller (duckdns + suppression des lignes dans mon fichier de conf)

J’ai voulu tenter configurer mon nom de domaine plutôt que duckdns.

Je l’ai déjà fait pour mon NAS rien de sorcier mais avec HA ca ne fonctionne pas.

Un dyndns est configurer sur ma box, un alias CNAME sur mon domaine redirige vers le dyndns de ma box.
En mettant le cname + le port depuis l’extérieur, j’avais une erreur de certificat.
J’ai tenté d’ajouter le cname dans NPM de la même manière que je l’avais fait pour l’url duckdns mais il me mettais toujours une erreur de certificat.

Tout cela en redémarrant HA a chaque fois et en fermant et réouvrant le navigateur depuis l’extérieur.

3 c’est trop… 80/443 vers NPM et/ou 8123 vers HA (si https)

Donc c’est car le certificat (hors NPM) ici correspond bien au domaine duckdns

Et là c’est que le certificat est soit pas celui du domaine (un mélange entre duckdns sur l’url et dyndns dans le certificat ou l’inversr), soit il est périmé. Avec chrome tu peux passer outre les erreurs et accessoirement le voir
cert

Effectivement le certificat était pour l’url duckdns alors que j’essayais d’acceder a Ha avec l’url de mon domaine.

Pourtant dans NPM, j’avais bien creer le proxyhost avec l’url de mon domaine et bien generer un certificat .

Il fallait peut être que je modifie le certificat ici: ???

Je n’utilise pas ces applications chez moi (il y a que traefik qui vaille le coup je trouve) donc je n’ai absolument aucune idée de où ça se trouve… mais sur le principe il faut générer les certificats avec le bon nom et se baser sur le tuto