Pas d'accès vers l'extérieur

Mon problème

J’ai réalisé la dernière étape du tuto (celle relative à la version 2021 07) mais ça ne fonctionne pas chez moi. J’ai essayé avec chacune des adresses IP suggérées, je ne trouve pas d’erreur dans le fichier home-assistant.log… et l’accès extérieur ne fonctionne pas. Et je n’arrive pas à trouver l’adresse IP autrement (je suis sur une VM VirtualBox, est-ce que ça peut empêcher le fonctionnement ?).

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 4431
Installed Version 1.13.2
Stage running
Available Repositories 904
Installed Repositories 19
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.6 GB
healthy true
supported true
board ova
supervisor_api ok
version_api pending
installed_addons CEC Scanner (2.4), Duck DNS (1.13.0), File editor (5.3.3), Samba share (9.5.1), Terminal & SSH (9.1.3), Let’s Encrypt (4.11.0), 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

Dans le tutoriel, il n’y a aucune adresse suggérée mais la méthode pour trouver l’adresse :wink:

Si tu n’as pas de log d’erreur colle dans le tutoriel, ce n’est pas le problème…

Vérifie les redirection

si j’ai bien compris le tuto, les adresses suggérées ne sont là que pour déclencher un log d’erreur à partir duquel on trouve l’adresse requise. Je les ai essayées, sans succès.
Mes redirections me semblent bonnes…


Qu’entends-tu par « Si tu n’as pas de log d’erreur colle dans le tutoriel, ce n’est pas le problème… »

l’adresse de la redirection n’est pas celle de nginx, mais celle de ha

Salut.
Pas du tout : toutes les tentatives d’accès quand la configuration est incomplète (y compris vide comme avant le changement) vont déclencher les erreurs.

Ça aurait tendance à expliquer pourquoi ça ne produit pas d’erreur… Cette modification est indispensable quand on passe par un proxy (ngnix)… Donc forcément si celui ci est court circuité…
Et du coup quel intérêt de le mettre pour ne pas s’en servir ?

Oui, c’est bien mon problème, c’est que je ne connais pas l’adresse IP de nginx… comment puis-je la trouver ?

J’ai pas du tout la même configuration à la maison mais étant donné que l’installation est en docker, l’adresse est la même mais le port est probablement différent vu de l’extérieur des conteneurs.

  • 8123 (ip physique/privée) arrive sur home assistant 8123 (interne docker)
  • 80 et 443 (ip physique/privée) arrivent sur le proxy et sont rédigés vers 8123 (interne docker de ha) de home assistant

Donc à condition d’avoir les redirections correctes (ce qui semble en survolant) c’est le protocole + l’adresse + le port qui déterminent le chemin :

  • ip publique + port XXX => ip physique/privée port XXX

C’est en passant par le proxy que la log ha indiquera l’adresse ip interne du conteneur ngnix qui est vue. Et à partir de cette information qu’on adapte la configuration pour l’autoriser

J’ai reformulé un peu les explications au dessus car à la relecture ça pouvait ne pas être clair

  • https + ip publique + port 443=> https + ip physique/privée port 443 => https + ip interne docker ngnix + port 443 => (transformation https/http) => http + ip interne docker ha + port 8123

Ce qu’il faut renseigner :

  • l’adresse ip interne du proxy ngninx

Pour l’obtenir il faut

  • passer par le nom de domaine en https + port 443 (quand tout est mis en place et fonctionne)
  • regarder les log ha qui indique le blocage

merci Pulpy de consacrer du temps à m’aider !
Pour être plus clair sur la situation : jusqu’à présent, j’ai suivi toutes les étapes du tuto :
nettoyage de la configuration
accès interne
prise en compte des modifications
routage des ports (NAT)
Installation MariaDB
Installation Nginx Proxy Manager
Configuration du nom de domaine
Passage en https
Nettoyage

je bloque sur la toute dernière étape « depuis la 2021.7 », c’est là que je n’arrive pas à renseigner l’adresse IP (que je ne connais pas). J’ai suivi le conseil :

Mais c’est là que je ne récupère pas le log ERROR.
et pour le moment, la redirection des ports est restée comme dans l’étape « routage des ports (NAT) » du tuto, ports de l’@IP de HA.

Donc tant que je n’ai pas cette @IP de Nginx, je suis bloqué !
J’ai essayé de faire la manip que tu indiques dans ton dernier post, mais je ne récupère pas plus de log d’erreur…
Qu’entends-tu par « quand tout est mis en place et fonctionne » ? Je pense que ça ne peut pas être le cas pour moi puisque je suis arrêté à cette dernière étape du tuto, donc tout ne peut pas fonctionner.
Pour être précis, quand je fais https://mondomaine:443, j’ai une erreur 400 sur mon navigateur, et sur les logs d’HA, rien

L’erreur 400 (c’est lié à l’image de l’étape 5) c’est bien ce qui est normal quand il manque la dernière étape de saisie de l’adresse ip.
Donc ça veut dire que le reste de la configuration est probablement correct.
Ça veut aussi forcément dire que c’est visible dans les logs de HA.

Je ne suis pas allé bien loin, je retrouve une internal error quand je fais save sur « Add Let’s Encrypt Certificate », alors que les ports sont cette fois bien redirigés :


l’adresse IP de destination étant celle de HA.

C’est le proxy qui gère le certificat donc si on ne passe pas au travers de celui ci il ne sera pas encore mesure de faire son travail de sécurisation (et de permettre la génération des certificats)

Oui, j’ai bien compris que nginx se met en front vis à vis de HA et que c’est lui qui gère le certificat, mon problème est de connaître l’adresse IP de Nginx pour rediriger les ports vers lui. As-tu une astuce pour savoir sur quelle @IP est Nginx?

Tu a l’installation HA OS ? Si tel est le cas, l’@ip est celle du RPi la même que HA en somme.

Tu la retrouve dans la barre d’adresse de ton navigateur quand tu es sur l’administration de NPM.

Ensuite sans parler de HA, tu fais un test simple :

Dans Nginx, tu rediriges ton_nom_de_domaine.fr vers l’@ip du pi et sur le port 81 en http.

Tu cliques dessus dans nginx (ou tu tapes dans la barre d’adresse) et tu vérifies que tu accèdes bien à la page de configuration de Nginx.

Ensuite, tu passes la connexion en HTTPS avec l’utilisation d’un certificat wildcard créé au préalable.

Enfin, lorsque c’est opérationnel, tu travaille sur HA.

Ne pas oublier de cocher websockets support pour la redirection de HA :

la redirection du port 8123 n’a pas lieu d’exister avec l’utilisation de Nginx

OK, j’ai supprimé la redirection sur la box