NPM impossible d'associer https à un localhost:5678 (avec routeur Freebox)

Bonjour,

Mon problème

Je souhaite utiliser n8n pour définir un noeud Asana trigger qui informera Home Assistant qu’il y a un nouvel évènement Asana. Pour cela j’ai besoin d’un webhook https de n8n.

J’essaie donc d’associer un domain xxxx.duckdns.org avec mon instance local n8n accessible via http://localhost:5678 et j’imagine pouvoir le faire avec l’add-on Nginx Proxy Manager de Home Assistant; mais je n’y arrive pas :frowning:
En effet quand je clique sur https://xxxx.duckdns.org, la page de mon routeur Freebox Delta s’ouvre (au lieu de s’ouvrir sur n8n).

J’utilise l’add-on Nginx Proxy Manager (avec Maria DB) sur ma machine virtuelle Home Assistant OS 192.168.1.34 qui est bridged au même réseau que le mini PC 192.168.1.27 sur lequel n8n est installé.

Je peux facilement accéder à http://localhost:5678 et http://xxxx.duckdns.org:5678 , mais en tapant https://xxxx.duckdns.org:5678 il ouvre la page web de mon routeur (probablement parce que j’ai rentré IPv4 de mon router dans le domain xxxx de duckdns).

Voici les réglages Nginx Proxy Manager , le statut de mon proxy host est “vert - on line” et le certificat duckdns est créé :


image

Je ne sais pas d’où vient le souci, surtout que j’ai l’impression de suivre des tutos dans une situation analogue. Mais comme dit récemment dans un post précédent (que je suis entrain de traiter en //), je ne suis toujours pas assez à l’aise avec les problématiques réseaux.
Je vous remercie par avance pour votre aide :slight_smile:

Ma configuration


[center]## System Information

version core-2024.9.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
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
HACS Data ok
GitHub API Calls Remaining 4998
Installed Version 2.0.1
Stage running
Available Repositories 1426
Downloaded Repositories 67
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 13.1
update_channel stable
supervisor_version supervisor-2024.09.1
agent_version 1.6.0
docker_version 26.1.4
disk_total 38.7 GB
disk_used 27.2 GB
healthy true
supported true
host_connectivity true
supervisor_connectivity true
ntp_synchronized true
virtualization vmware
board ova
supervisor_api ok
version_api ok
installed_addons File editor (5.8.0), Terminal & SSH (9.14.0), Samba Backup (5.2.0), Zigbee2MQTT (1.40.1-1), ESPHome (2024.8.3), Mosquitto broker (6.4.1), Duck DNS (1.18.0), eufy-security-ws (1.9.0), RTSP Simple Server Add-on (v0.17.6), Home Assistant Google Drive Backup (0.112.1), Frigate (Full Access) (0.14.1), Uptime Kuma (0.12.2), Piper (1.5.2), openWakeWord (1.10.0), MQTT Explorer (browser-1.0.3), Samba share (12.3.2), Double Take (1.13.11.8), CodeProject AI.Server (CPU) (2.5.1), vosk (1.6.1), AppDaemon (0.16.6), Glances (0.21.1), Nginx Proxy Manager (1.0.1), MariaDB (2.7.1)
Dashboards
dashboards 2
resources 38
views 17
mode storage
Recorder
oldest_recorder_run 15 septembre 2024 à 06:24
current_recorder_run 16 septembre 2024 à 20:43
estimated_db_size 493.05 MiB
database_engine sqlite
database_version 3.45.3
[/center]

Hello
Logiquement les requêtes arrivant sur le reverse proxy doivent arriver sur le port 443
C’est ensuite le reverse qui renvoie vers ton service interne sur un ip:port les différenciation ce dont au niveau de l’entête http grâce au nom de domaine

Poste la configuration de ton host sur npm
Édit: zut j’ai regardé de travers tu as posté les confs

Edit2: lorsque tu fais un nslookup xxxx.duckdns.org 1.1.1.1 est qu’une ipv6 en plus de l’ipv4 est résolue ?
dans ta box tu as bien redirigé ls port 443 vers le 443 de ton reverse proxy ?

Salut,
le fait que tu dises que http://xxxx.duckdns.org:5678 mais que
https://xxxx.duckdns.org:5678 ne marche pas, fait effectivement penser que c’est la redirection de port de ta box qui induit en erreur.
Comme le dit @ddfdom , seulement le 443 de la box doit être redirigé ver NPM. et rien ne devrait être mis vers n8n.

Avec une reverse proxy on n’utilise pas les ports exotique comme 5678 depuis l’expérieur, c’est npm qui gère ça…

1 « J'aime »

Hello @ddfdom et @AlexHass

Merci pour vos retours ! Voilà ce que donne le nsloopkup :
image
A noter que quand je refais le test 5 minutes plus tard :thinking:
image

Quand vous dites « redirigé ls port 443 vers le 443 de ton reverse proxy », comme Nginx proxy Manager est installé en add-on sur ma VM Home Assistant 192.168.1.34, on est d’accord qu’il faut définir la redirection de port entrée 443, port sortie 443 sur l’IP 192.168.1.34, n’est-ce pas ? si tel est le cas, c’est effectivement ce que j’ai fait.

Edit @ddfdom : comment contrôler que l’ipv6 est résolu en plus de l’ipv4 ?
NB : Freebox est en full stack

avec le nslookup tu aurais aussi une ipv6 et lus d l’ipvas ce qui ne semble pas etre le cas, l’ip résolue est bien ton ip publique

si 192.168.1.34 est l’ip de ton HA c’est bien le cas

par conte c’est étrange ces timeout DNS mais c’est

par contre lorsque tu fais tes tests tu les fait bien avec une machine hors de ton réseau local genre une téléphone connecté en 4G avec un navigateur en navigation privée ? ça évite les erreurs de cache

Pour les tests des https://xxxx.duckdns.org et https://xxxx.duckdns.org:5678, je l’avais fait de chez moi en local avec F5 :face_with_open_eyes_and_hand_over_mouth:
Du coup, je viens de le faire en 4g sur mon portable et j’ai les mêmes résultats :

Pour le nslookup, il faut aussi le faire en exterieur ?

Tu as un soucis de redirection de ports sur ta Freebox
Ça envoie directement sur ta Freebox
A moins que tu aies déjà un host dans npm qui envoies vers ta Freebox

Tu as d’autres host dans ton npm

Non, pas d’autres proxi hosts sur npm.
Autres infos si ça peut aider :

  • il y a l’add-on duckdns de HA qui fait le lien entre https://yyyy.duckdns.org:8123 et mon instance HAY
  • la référence de xxxx.duckdns.org sur le site duckdns pointe vers l’ipv4 du routeur (tout comme yyyy.duckdns.org d’ailleurs)
  • et autres paramètres routeur qui peuvent peut-être avoir une influence :


Bon voilà ton problème le port 443 est déjà pris par l’accès distant à ta Freebox ,que je te conseille de désactiver
Si tu veux des accès comme ceux là a distance utilise un vpn le vpn wireguard de la Freebox étant très simple à utiliser

2 « J'aime »

Merci beaucoup @ddfdom .
Je n’ai pas trouvé le moyen de désactiver l’accès distant Freebox OS :thinking: mais j’ai du coup mis un autre port, et en deletant/refaisant le proxy host, ça marche !
Est-ce que tu penses que ça peut aussi expliquer mon temps anormal de chargement discuté dans ce post Pb de Temps d'accès HA important en externe - #20 par WarC0zes ?
Sur ce dernier point, je reviendrai sur le post quand j’aurais poursuivi mes investigations et continuer à nettoyer mes ports :sweat_smile:

Ton HA il est pas sur le port 443 sinon ça n’aurait pas fonctionné donc non
Mais du coup tu vas pouvoir mettre ton HA derrière ton reverse proxy aussi

1 « J'aime »

Hello @ddfdom
Ok je vais du coup basculer mon domaine https://xxx.duckdns.org:8123 de l’add-on duckdns à Nginx Proxy Manager ; mais comme j’ai peur de faire des bêtises et perdre l’accès à mon HA je préfère verifier le process auprès de vous :sweat_smile: Si je comprends bien, il faut que :
1- j’arrête l’add-on duckdns
2- je retire dans configuration.yaml les lignes

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

3- je redémarre HA et me connecte à HA via http://192.168.1.34:8123
4- sous l’add-on NPM, je déclare mon proxy host en liant xxxx.duckdns.org à http://192.168.1.34:8123 et en y associant la création d’un certificat
5- je pourrai alors directement me connecter sur https://xxxx.duckdns.org (et plus via https://xxxx.duckdns.org:8123, c’est ça ?) sans avoir à redémarrer HA

Est-ce que je peux zapper l’étape 3 ?

Il faut aussi ajouter dans le fichier configuration.yaml d’autoriser ton reverse proxy sinon tu aura une erreur de type forbiden

  use_x_forwarded_for: true
  trusted_proxies:
    - x.x.x.x
  ip_ban_enabled: true
  login_attempts_threshold : 5

En remplaçant x.x.x.x par l’IP de ton reverse proxy
Les 2 dernières lignes permettent de bannir une ip qui se trompe plus de 5 fois de suite de lire de passe

1 « J'aime »

Bonsoir @ddfdom
J’aurais une dernière question :sweat_smile: comment ça se passe le renouvellement des certificats ? Est-ce ce que l’add-on les renouvelle automatiquement ? :thinking:
Merci d’avance pour ton retour :wink:

NPM gère ça tout seul comme un grand

1 « J'aime »

Hello @ddfdom
Désolé de t’embêter encore avec mes soucis https, tout fonctionnait bien jusqu’à ce soir et un reboot nécessaire après un écran bleu du mini PC hôte de la VM, et là plus d’accès https://xxxx.duckdns.org après redémarrage de la VM (il marque 400: Bad Request) :

  • les adresses IP sont bien conservées à savoir 192.168.1.27 pour l’hôte, 192.168.1.34 pour la VM
  • HA accessible via http://192.168.1.34:8123
  • Les proxy et certificats semblent pourtant au vert

  • les 2 autres https://yyyy.duckdns.org (dont n8n créé ensemble) n’ont aucun souci pour y accéder
  • j’ai testé sur smartphone et PC hors wifi, après avoir vidé les caches ([F5], Ctrl[F5]), mais rien n’y fait :frowning:
  • PS : j’ai mis en place un redémarrage automatique mensuel de la Freebox qui a eu lieu cette nuit; mais pour moi ça n’est pas lié puisque j’avais accès de l’extérieur à mon https toute la journée
  • Voilà les logs après redémarrage NPM :
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service nginx: stopping
[22:55:13] INFO: Service NGINX exited with code 0 (by signal 0)
s6-rc: info: service nginx successfully stopped
s6-rc: info: service init-nginx: stopping
s6-rc: info: service npm: stopping
s6-rc: info: service init-nginx successfully stopped
[10/1/2024] [10:55:13 PM] [Global   ] › ℹ  info      PID 161 received SIGTERM
[10/1/2024] [10:55:13 PM] [Global   ] › ℹ  info      Stopping.
[22:55:13] INFO: Service Nginx Proxy Manager exited with code 0 (by signal 0)
s6-rc: info: service npm successfully stopped
s6-rc: info: service init-npm: stopping
s6-rc: info: service init-npm successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service base-addon-log-level: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service base-addon-log-level successfully stopped
s6-rc: info: service base-addon-banner: stopping
s6-rc: info: service base-addon-banner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service base-addon-banner: starting

-----------------------------------------------------------
 Add-on: Nginx Proxy Manager
 Manage Nginx proxy hosts with a simple, powerful interface
-----------------------------------------------------------
 Add-on version: 1.0.1
 You are running the latest version of this add-on.
 System: Home Assistant OS 13.1  (amd64 / qemux86-64)
 Home Assistant Core: 2024.9.3
 Home Assistant Supervisor: 2024.09.1
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service init-npm: starting
s6-rc: info: service init-nginx: starting
s6-rc: info: service init-npm successfully started
s6-rc: info: service npm: starting
s6-rc: info: service npm successfully started
s6-rc: info: service init-nginx successfully started
s6-rc: info: service nginx: starting
s6-rc: info: service nginx successfully started
s6-rc: info: service legacy-services: starting
[22:55:17] INFO: Starting NGinx...
[22:55:17] INFO: Starting the Manager...
nginx: [warn] protocol options redefined for 0.0.0.0:443 in /config/nginx/proxy_host/6.conf:14
s6-rc: info: service legacy-services successfully started
[10/1/2024] [10:55:17 PM] [Global   ] › ℹ  info      Using Sqlite: /config/database.sqlite
[10/1/2024] [10:55:18 PM] [Migrate  ] › ℹ  info      Current database version: none
[01/Oct/2024:22:55:19 +0200] - 200 200 - GET https bernar244.duckdns.org "/" [Client 192.168.1.254] [Length 4099] [Gzip -] [Sent-to 192.168.1.27] "Uptime-Kuma/1.23.15" "-"
[01/Oct/2024:22:55:21 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:21 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
2024/10/01 22:55:24 [error] 199#199: *7 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.1.27, server: nginxproxymanager, request: "GET /api/ HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "192.168.1.34:81", referrer: "http://192.168.1.34:81/nginx/proxy"
[01/Oct/2024:22:55:26 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:27 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[10/1/2024] [10:55:28 PM] [Setup    ] › ℹ  info      Added Certbot plugins certbot-dns-duckdns~=0.9 
[10/1/2024] [10:55:28 PM] [Setup    ] › ℹ  info      Logrotate Timer initialized
[10/1/2024] [10:55:28 PM] [Setup    ] › ℹ  info      Logrotate completed.
[10/1/2024] [10:55:28 PM] [IP Ranges] › ℹ  info      Fetching IP Ranges from online services...
[10/1/2024] [10:55:28 PM] [IP Ranges] › ℹ  info      Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[10/1/2024] [10:55:30 PM] [IP Ranges] › ℹ  info      Fetching https://www.cloudflare.com/ips-v4
[10/1/2024] [10:55:30 PM] [IP Ranges] › ℹ  info      Fetching https://www.cloudflare.com/ips-v6
[10/1/2024] [10:55:30 PM] [SSL      ] › ℹ  info      Let's Encrypt Renewal Timer initialized
[10/1/2024] [10:55:30 PM] [SSL      ] › ℹ  info      Renewing SSL certs close to expiry...
[10/1/2024] [10:55:30 PM] [IP Ranges] › ℹ  info      IP Ranges Renewal Timer initialized
[10/1/2024] [10:55:31 PM] [Global   ] › ℹ  info      Backend PID 163 listening on port 3000 ...
[01/Oct/2024:22:55:31 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[10/1/2024] [10:55:31 PM] [Nginx    ] › ℹ  info      Reloading Nginx
[10/1/2024] [10:55:31 PM] [SSL      ] › ℹ  info      Renew Complete
2024/10/01 22:55:31 [warn] 170#170: protocol options redefined for 0.0.0.0:443 in /config/nginx/proxy_host/6.conf:14
[01/Oct/2024:22:55:32 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:36 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:36 +0200] - 304 304 - GET https bernar244.duckdns.org "/rest/cta/become-creator" [Client 192.168.1.254] [Length 0] [Gzip -] [Sent-to 192.168.1.27] "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36" "-"
[01/Oct/2024:22:55:37 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:39 +0200] - 200 200 - GET https bernar244.duckdns.org "/" [Client 192.168.1.254] [Length 4099] [Gzip -] [Sent-to 192.168.1.27] "Uptime-Kuma/1.23.15" "-"
[01/Oct/2024:22:55:41 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:42 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:46 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:47 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:51 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:52 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:56 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:57 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:55:59 +0200] - 200 200 - GET https bernar244.duckdns.org "/" [Client 192.168.1.254] [Length 4099] [Gzip -] [Sent-to 192.168.1.27] "Uptime-Kuma/1.23.15" "-"
[01/Oct/2024:22:56:01 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:56:02 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:56:06 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:56:07 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:56:11 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:56:12 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:56:16 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/websocket" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:56:17 +0200] - 400 400 - GET https bernar243.duckdns.org "/api/config" [Client 192.168.1.254] [Length 16] [Gzip -] [Sent-to 192.168.1.34] "-" "-"
[01/Oct/2024:22:56:19 +0200] - 200 200 - GET https bernar244.duckdns.org "/" [Client 192.168.1.254] [Length 4099] [Gzip -] [Sent-to 192.168.1.27] "Uptime-Kuma/1.23.15" "-"

Voyez-vous d’où peut venir le problème et comment le résoudre ?
Merci par avance pour vos aides :pray:

Duckdns essuie pas mal de soucis
Je te conseille vraiment d’investir dans un vrai nom de domaine OVH fait des .OVH pour 4€ par an

1 « J'aime »

si 400 bad request possible que le problème vienne de

use_x_forwarded_for: true
  trusted_proxies:
    - x.x.x.x

contrôler l’adresse IP (x.x.x.x) et redémarrer

1 « J'aime »