Souci avec NGINX proxy SSL

Bonjour à tous,
Je viens de me connecter à HA en externe par le biais de HA compagnon avec un NDD Free.
J’utilise pour cela Let’s encrypt et NGINX Proxy SSL et j’ai suivi l’article Accès HA en https configuration. L’accès externe fonctionne, mais je n’arrive pas à me connecter en local (http). Cependant le loopback fonctionne. J’ai remarqué que dans Configuration > Système> Réseau si je rentre mon adresse IP du HA avec le port 8123 en http dans l URL HA j’ai cette information :
URL sur réseau local non valide
Vous avez configuré un certificat HTTPS dans Home Assistant. Vous devez obligatoirement définir une URL interne dont le domaine est couvert par le certificat.
Les ports de 80 et 443 de la freebox pointent bien vers le port 8123 de HA, j’ai essayé de les faire pointer respectivement vers le 80 et le 443 cela ne change rien.
Je compte sur vos compétences pour m’aider à résoudre ce problème.
Merci d’avance

Renseigner votre problème

Ma configuration

## System Information

version | core-2024.10.2
-- | --
installation_type | Home Assistant OS
dev | false
hassio | true
docker | true
user | root
virtualenv | false
python_version | 3.12.4
os_name | Linux
os_version | 6.6.46-haos
arch | x86_64
timezone | Europe/Paris
config_dir | /config

<details><summary>Home Assistant Community Store</summary>

GitHub API | ok
-- | --
GitHub Content | ok
GitHub Web | ok
HACS Data | ok
GitHub API Calls Remaining | 5000
Installed Version | 2.0.1
Stage | running
Available Repositories | 1435
Downloaded Repositories | 8

</details>

<details><summary>Home Assistant Cloud</summary>

logged_in | false
-- | --
can_reach_cert_server | ok
can_reach_cloud_auth | ok
can_reach_cloud | ok

</details>

<details><summary>Home Assistant Supervisor</summary>

host_os | Home Assistant OS 13.1
-- | --
update_channel | stable
supervisor_version | supervisor-2024.10.0
agent_version | 1.6.0
docker_version | 26.1.4
disk_total | 234.0 GB
disk_used | 15.9 GB
healthy | true
supported | true
host_connectivity | true
supervisor_connectivity | true
ntp_synchronized | true
virtualization | 
board | generic-x86-64
supervisor_api | ok
version_api | ok
installed_addons | Studio Code Server (5.17.1), Zigbee2MQTT (1.36.0-1), Mosquitto broker (6.4.1), ESPHome (2024.9.2), InfluxDB (5.0.1), Grafana (10.1.1), Network UPS Tools (0.13.2), Samba Backup (5.2.0), Advanced SSH & Web Terminal (19.0.0), Let's Encrypt (5.2.1), Node-RED (18.1.1), NGINX Home Assistant SSL proxy (3.11.0)

</details>

<details><summary>Dashboards</summary>

dashboards | 2
-- | --
resources | 3
views | 10
mode | storage

</details>

<details><summary>Recorder</summary>

oldest_recorder_run | 3 octobre 2024 à 06:25
-- | --
current_recorder_run | 12 octobre 2024 à 15:10
estimated_db_size | 2739.87 MiB
database_engine | sqlite
database_version | 3.45.3

</details>

Est-ce que dans ton fichier configuration.yaml tu as ceci :

homeassistant:
  external_url: "https://ton_nom_de_domaine/"
  internal_url: "http://192.168.1.42:8123"

Bonjour Jackbot,
Effectivement, je n’avais pas mis les lignes de commandes citées dans le configuration.yaml. Je les ai rajoutés, mais rien n’y fait, même en changeant le port de redirection du 80 vers le 80 ou du 80 vers 8123

Hello

Ces lignes que tu viens d’ajouter sont … inutiles :wink:

Peux tu par contre nous montrer la partie http: de ton fichier configuration.yaml ?

Pour tes redirections sur ta box , avec proxy ssl c’est uniquement 443 vers 443 et 80 vers 80.

Le module proxy ssl est bien lancé et au vert ?

Bonjour Krull56,
Voici mes lignes http du fichier configuration

http:
  #ssl_certificate: /ssl/fullchain.pem
  #ssl_key: /ssl/privkey.pem
  
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.30.33.0/24
  ip_ban_enabled: true
  login_attempts_threshold: 4

homeassistant:
  external_url: "https://xxxxxx.freeboxos.fr"
  internal_url: "http://192.168.xxxx:8123"

Le proxy est lancé

[11:11:58] INFO: Running nginx…
nginx: [warn] the « listen … http2 » directive is deprecated, use the « http2 » directive instead in /etc/nginx.conf:30
Je ne sais pas si la dernière ligne est préoccupante, mais d’après ce que j’avais pu lire ce n’est qu’une différence de code entre deux versions et qu’elle n’est pas préoccupante.
J’ai changer les redirections pour le port 80 vers le 80 et le 443 vers le 443. Laà NGINX donne cela dans les logs suite au changement de 443 vers le 443
http://172.30.32.1:8123/api/websocket", host: « xxxxxxx.freeboxos.fr »
2024/10/13 14:56:09 [error] 128#128: *22 upstream prematurely closed connection while reading response header from upstream, client: 78.xx.xx.xx, server: xxxxx.freeboxos.fr, request: « GET /api/websocket HTTP/1.1 », upstream: « http://172.30.32.1:8123/api/websocket », host: « xxxxxx.freeboxos.fr »
Par contre en laissant la redirection du 443 vers le 8123 j’arrive à me connecter avec hHA compagnon en 4G

Oui oui c’est nécessairement vers le port 8123 qu’il faut rediriger, car c’est le port d’écoute de home assistant.

Ah j’avais mal compris la question je crois. En fait ce que tu cherche à faire est d’accéder en local à HA, mais en utilisant le nom de domaine, pas l’adresse ip, c’est bien ça ? Parce que si c’est ça, nécessairement ça va coincer …

En gros le chemin que tu cherche à suivre est : poste local => box => internet => box => HA. Parce que ton nom de domaine pointe vers ton adresse publique. Je ne pourrai pas te donner les détails, mais ce chemin là ne fonctionnera pas.

Chez moi je le fais en modifiant les DNS, j’ai une instance de pihole et je fais pointer le nom de domaine vers l’adresse locale. Je ne cherche donc pas à contacter l’adresse publique alors que je suis en local. Il faut donc voir si sur ta box tu peux faire une redirection, pas de port, mais d’adresse.

1 « J'aime »

Vous pouvez être plus explicite. Oui, il est vrai que je cherche d’un côté pouvoir me connecter en https de l’extérieur via un smartphone et HA Compagnon et de l’autre en interne via http au cas de rupture internet. Comme vous l’avez constater je suis sur un freebox.

@Jackbot , stp, tu vas nous l’embrouiller et en plus tu ne réponds pas à sa situation.

Avec proxy ssl , c’est le port 443
Proxy ssl permet d’avoir accès en local http://IP:8123, donc sans loopback si pb internet

C’est justement ce qu’il ne cherche pas à faire … Il ne veut pas l’ip, mais le nom de domaine. Donc il faut modifier les DNS pour qu’il puisse accéder à son instance HA en local en utilisant le nom de domaine.

Je ne connais pas les réglages disponibles sur la freebox, quel model as-tu ?

1 « J'aime »

la freebox révolution

En fait accéder à HA avec ip:8123, tout en gardant un accès de l’extérieur avec le nom de domaine, me convient aussi si cela simplifie la question

1 « J'aime »

IP:8123 ou homeassistant.local:8123 si tu n’as pas changé le nom d’hôte de ton HA.

La partie http: de ton configuration.yaml est ok.
Supprime les 2 lignes que tu as ajouté tout à l’heure et redémarre ton HA

Peux tu poster ta conf de proxy ssl en masquant le nom de domaine tout en haut ?

Et tant qu’on y est la partie URL de ta conf réseau

J’ai enlevé les lignes incriminées

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.30.33.0/24
  ip_ban_enabled: true
  login_attempts_threshold: 4


influxdb:
j'ai redamarré et tenter de me connecter en IP:8123 je me retrouve toujours en loopback https:IP:8123```

influxdb:

Désolé la copie d'écran ne donne rien car deux écrans d'activés, j'espère que cela suffit
`[Texte préformaté]```
xxxxx.freeboxos.fr
max-age=31536000; includeSubDomains
fullchain.pem
privkey.pem
cloudfare désactivé
active: false
default: nginx_proxy_default*.conf
servers: nginx_proxy/*.conf
Réseau
443 > 443 tcp`

Ok

Et la partie URL dans la conf réseau ?

J’ai rien d’autre que le port 443 vers le 443 tcp

Comme ma capture d’écran stp :grin:

2 « J'aime »

Elle ne s’affiche pas

Il faudrait aussi regarder du coté de ta configuration de NGINX, as-tu juste la conf pour le port 443 ?

Oui en réseau NGINX j’ai que 443 vers 443 tcp rien dans le 80 tcp

Ton problème est donc là, il te faut la conf aussi pour gérer l’accès via le http, car là de ce que je comprends tu n’as configuré que le https