Problème d'installation de Nginx Proxy Manager

Mon problème

Hello,

Suite au fait que je ne pouvais plus accéder à HA en local au départ de mon smartphone après avoir installé DuckDNS et Let’s Encrypt, je me suis lancé dans la mise en place de Nginx Proxy Manager en suivant le tuto de @Sylvain_G (tuto d’origine)

Au niveau du nettoyage de la config

configuration.yaml,
J’ai commenté les lignes pour Let’s Encrypt dans

http:
  #   ssl_certificate: /ssl/fullchain_duckdns.pem
  #   ssl_key: /ssl/privkey_duckdns.pem
  use_x_forwarded_for: true
  trusted_proxies:
    - 127.0.0.1
    - 192.168.0.1         # adresse du routeur
    - 192.168.2.220       # adresse de HA et Nginx

Configuration de DuckDNS pour le refresh IP

Configuration Duck DNS
domains:
  - xxx-prd.duckdns.org
token: xxxxxxxxx-xxxx-xxxx-xxx-xxxxxxxxxxx
aliases: []
lets_encrypt:
  accept_terms: false
  algo: secp384r1
  certfile: fullchain.pem
  keyfile: privkey.pem
seconds: 300

Nginx Proxy Manager est installé mais lorsque je suis à l’étape pour valider que ça fonctionne en local au départ de Nginx Proxy Manager, ça ne fonctionne pas.
Lorsque je click sur le lien, il ouvre une page web
image

J’en suis la :frowning:
A force de lire ci et la les choses, j’ai un doute sur

  • NGINX peut-il être installé sur le HA que j’essaie de joindre. Je n’ai pas vu de contre indication mais le schéma pourrait m’indiquer le contraire malgré que ça semble un schéma logique.
  • Les règles de forwarding mais je pense qu’en local, elle ne sont même pas utilisée mais au moins pour la suite, ce sera déjà vérifié.

Je pense que j’ai tout noté, j’aurais un grand plaisir a donner encore plus d’info a celui qui prendra mon cas en charge :slight_smile:

Le tutoriel d’origine

Ma configuration


## System Information
version core-2023.9.1
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.5
os_name Linux
os_version 6.1.21-v8
arch aarch64
timezone Europe/Brussels
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.32.1
Stage running
Available Repositories 1335
Downloaded Repositories 7
AccuWeather
can_reach_server ok
remaining_requests 17
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 10.5
update_channel stable
supervisor_version supervisor-2023.11.3
agent_version 1.5.1
docker_version 23.0.6
disk_total 109.3 GB
disk_used 14.1 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Advanced SSH & Web Terminal (16.0.1), Samba share (12.1.0), Studio Code Server (5.14.2), Node-RED (16.0.2), Mosquitto broker (6.3.1), NGINX Home Assistant SSL proxy (3.5.0), MariaDB (2.6.1), Nginx Proxy Manager (0.12.3), Duck DNS (1.15.0)
Dashboards
dashboards 3
resources 5
views 11
mode storage
Recorder
oldest_recorder_run 6 novembre 2023 à 18:58
current_recorder_run 19 novembre 2023 à 17:17
estimated_db_size 684.59 MiB
database_engine sqlite
database_version 3.41.2
Sonoff
version 3.5.1 (122751c)
cloud_online 0 / 0
local_online 0 / 1

Salut.

Tu as 3 port dans npm.

  • 80
  • 443
  • 81

81 c’est le port d’administration, donc jamais exposé sur internet. Hors tes deux dernieres règles font le contraire !!!
A corriger en mettant 80 et 443 (port entrant = port sortant)

Ça ira beaucoup mieux ensuite

Dernier détail c’est ton ha de test, donc évite quand même de mettre ton domaine en clair (image etc) Je suis sur mobile donc édition compliquée.
Mais si @Moderateur passe dans le coin avant😅 Merci

1 « J'aime »

Salut @Pulpy-Luke
Donc je mets ceci ??

Donc pour ma compréhension
1°) via DuckDNS,

2°) Sur la BOX

  • forward IP_Publique:80 vers IP_NPM:80
  • forward IP_Publique:443 vers IP_NPM:443

3°) NPM

Si je comprends le principe
Pour l’externe,

  • NPM est exposé à internet et transfert http(s)://xxx.duckdns.org vers mon IP_HA:8123

Pour l’interne,

  • Je comprends bien le trajet direct IP_HA:8123, il n’y a pas de soucis
  • Par contre je ne comprends pas le trajet lorsque l’on utilise http://xxx.duckdns.org au départ du NPM. Mon navigateur tente de joindre http://xxx.duckdns.org. Il sort et revient sur le proxy pour au final atteindre IP_HA:80

Bref tout ça pour dire que j’essaie de comprendre pourquoi ça ne fonctionne toujours pas

Salut
C’est exactement ça pour la correction et les principes)
Le seul truc c’est que pour le chemin depuis ton wifi vers l’adresse duckdns, il faut que ta box t’autorise à sortir et ré rentrer. C’est pas toujours le cas en fonction des marques et des opérateurs

J’aurai du y penser !!!
Ce serait bien d’ajouter les pré-requis en début de Tuto :slight_smile:

Mais malheureusement, sur ma Bbox 3, le NAT loopback n’est pas disponible. Il semblerait que la box SAGEM ne l’a pas mais que la Technicolor propose cette option.
Un petit call chez Proximus pour tenter un changement s’impose :slight_smile:

Hello

As tu essayé avec nginx home assistant ssl proxy ?
Pas besoin de loopback dans ce cas puisque tu conserveras un accès local via l’adresse IP en http

@+

1 « J'aime »

Salut @Krull56
Effectivement malgré tes nombreux rappels à l’ordre, je n’ai pas essayé NGINX Home Assistant SSL proxy car NPM me semblait pas mal pour d’autres possibilités.

Cela dit, comme tu sembles dire que ça devrait fonctionner, je vais le tenter.
Je pars en quête du How-to Install, je mange et je tente ça :slight_smile:

Techniquement c’est pareil avec npm… Le port 80 ne pose aucun souci en local avec du http et une adresse ip

Les choses simples ne sont malheureusement pas toujours simple avec moi ^^

Je pense que pour l’enregistrement SSL via NPM il a besoin de ce NAT Loopback.

M’en vais pour de nouvelles aventures et tenter avec Nginx home assistant ssl proxy

Sans les logs, ça me semble un truc pas si simple à affirmer. Le plus probable c’est une erreur du config quand même

Quand on passe via Duckdns, il semble que ça pose soucis et qu’il faille utiliser une autre méthode

J’ai tout re-installé (Duckdns, MariaDB, NPM)
J’ai l’impression que mon certificat est créé mais ca ne fonctionne pas encore

Mon log NPM donne ceci

[11/20/2023] [10:03:46 PM] [Setup    ] › ℹ  info      Creating a new user: admin@example.com with password: changeme
[11/20/2023] [10:03:47 PM] [Setup    ] › ℹ  info      Initial admin setup completed
[11/20/2023] [10:03:47 PM] [Setup    ] › ℹ  info      Logrotate Timer initialized
[11/20/2023] [10:03:47 PM] [Setup    ] › ℹ  info      Default settings added
[11/20/2023] [10:03:47 PM] [Setup    ] › ℹ  info      Logrotate completed.
[11/20/2023] [10:03:47 PM] [IP Ranges] › ℹ  info      Fetching IP Ranges from online services...
[11/20/2023] [10:03:47 PM] [IP Ranges] › ℹ  info      Fetching https://ip-ranges.amazonaws.com/ip-ranges.json
[11/20/2023] [10:03:48 PM] [IP Ranges] › ℹ  info      Fetching https://www.cloudflare.com/ips-v4
[11/20/2023] [10:03:48 PM] [IP Ranges] › ℹ  info      Fetching https://www.cloudflare.com/ips-v6
[11/20/2023] [10:03:48 PM] [SSL      ] › ℹ  info      Let's Encrypt Renewal Timer initialized
[11/20/2023] [10:03:48 PM] [SSL      ] › ℹ  info      Renewing SSL certs close to expiry...
[11/20/2023] [10:03:48 PM] [IP Ranges] › ℹ  info      IP Ranges Renewal Timer initialized
[11/20/2023] [10:03:48 PM] [Global   ] › ℹ  info      Backend PID 278 listening on port 3000 ...
[11/20/2023] [10:03:52 PM] [Nginx    ] › ℹ  info      Reloading Nginx
[11/20/2023] [10:03:52 PM] [SSL      ] › ℹ  info      Renew Complete
`QueryBuilder#allowEager` method is deprecated. You should use `allowGraph` instead. `allowEager` method will be removed in 3.0
`QueryBuilder#eager` method is deprecated. You should use the `withGraphFetched` method instead. `eager` method will be removed in 3.0
QueryBuilder#omit is deprecated. This method will be removed in version 3.0
Model#$omit is deprected and will be removed in 3.0.
[11/20/2023] [10:05:26 PM] [Express  ] › ⚠  warning   invalid signature
Duplicate relation "access_list" in a relation expression. You should use "a.[b, c]" instead of "[a.b, a.c]". This will cause an error in objection 2.0
[11/20/2023] [10:07:09 PM] [Nginx    ] › ℹ  info      Reloading Nginx
[11/20/2023] [10:08:59 PM] [Nginx    ] › ℹ  info      Reloading Nginx
[11/20/2023] [10:08:59 PM] [SSL      ] › ℹ  info      Requesting Let'sEncrypt certificates via DuckDNS for Cert #1: xxxxx-xx-xxx.duckdns.org
[11/20/2023] [10:08:59 PM] [SSL      ] › ℹ  info      Command: mkdir -p /etc/letsencrypt/credentials 2> /dev/null; echo 'dns_duckdns_token=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' > '/etc/letsencrypt/credentials/credentials-1' && chmod 600 '/etc/letsencrypt/credentials/credentials-1' && pip install certbot-dns-duckdns~=0.9  && certbot certonly --config "/etc/letsencrypt.ini" --cert-name "npm-1" --agree-tos --email "xxxxxxxx@xxx.be" --domains "xxxxx-xx-xxx.duckdns.org" --authenticator dns-duckdns --dns-duckdns-credentials "/etc/letsencrypt/credentials/credentials-1"
[11/20/2023] [10:09:55 PM] [SSL      ] › ℹ  info      Account registered.
Requesting a certificate for xxxxx-xx-xxx.duckdns.org
Waiting 30 seconds for DNS changes to propagate
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/npm-1/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/npm-1/privkey.pem
This certificate expires on 2024-02-18.
These files will be updated when the certificate renews.
NEXT STEPS:
- The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that functionality. See https://certbot.org/renewal-setup for instructions.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[11/20/2023] [10:09:55 PM] [Nginx    ] › ℹ  info      Reloading Nginx
[11/20/2023] [10:09:56 PM] [Nginx    ] › ℹ  info      Reloading Nginx
[11/20/2023] [10:10:11 PM] [Nginx    ] › ℹ  info      Reloading Nginx

Configuration.yaml donne ceci

http:
  # ssl_certificate: /ssl/fullchain_LetsEncrypt.pem
  # ssl_key: /ssl/privkey_LetsEncrypt.pem
  use_x_forwarded_for: true
  trusted_proxies:
    - 127.0.0.1
    - 192.168.0.1
    - 192.168.2.220