Proxmox + Nginx Proxy Manager + HA 400: Bad Request

Bonjour la communauté,
Besoin de vous car je tourne en rond et plus on tourne en rond moins on vois les erreurs.

La situation
J’a un HA installé sur une machine physique et duckdns
Ce HA fonctionne parfaitement en https dès lors ou dans mon routeur je fais correctement mon port forwarding.
quand je vais sur mon adresse https://ha-monsite.duckdns.org:8123/
Tour fonctionne correctement
Mon bute est d’intercaler Nginx Proxy Manager afin de gérer directement a partir des noms de domaine et non plus des ports forwardé.

J’ai un Proxmox en place avec une VM sur laquelle j’ai Nginx Proxy Manager d’installer.
Celle-ci fonctionne correctement, et j’ai certaine VM dessus qui fonctionnent aussi correctement.

Mes ports 80 et 443 de mon routeur sont correctement configurés et obtiennent les certificats SSL.

Je pars donc sur l’hypothèse que
Mon routeur est correctement configuré pour les certificats
Mon Nginx Proxy manager est correctement configuré pour obtenir ses certificats
Que mon Nginx Proxy manager est correctement configuré (du moins en partie visiblement) pour réassigner la bonne route vers les bonnes machines qu’elles soient physique ou Vm
Mon HA de test, me parait bien configurer car répond correctement quand le port forwarding :port avec le nom de domaine est utilisé (mais j’ai un sacré doute sur ce fait.

Et quand je tente d’accéder a mon HA via son nom de domaine en HTTPS directement en 443 via mon Nginx Proxy manager, je récolte ce bon vieux message
400: Bad Request

Et pour certains autres système j’ai des
502 Bad Gateway

Mais dans un premier temps je tente de résoudre mon problème HA

dans configuration.yaml

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: 5

Duckdns

Donc ma demande d’aide est pourquoi mon HA répond bien quand j’utilise le port forwarding de mon routeur (donc en gros ce n’est pas la gestion du nom de domaine)
Et que cela ne fonctionne pas quand j’utilise la gestion des noms de domaines par Nginx Proxy manager

Je subodore que mon HTTPS de mon HA est mal configuré, mais je n’arrive pas a mettre la main sur le hic.
Si vous avez des idées de recherche
J’ai même un autre HA sur le même réseau sur une machine physique qui n’est pas configuré en https qui me produit la même erreur avec Nginx Proxy manager, ce qui me fait vraiment penser que c’est bien ma config https HA qui n’est pas bonne.
Par avance merci

Je m’autorépond
Il semblerait que cela soit bien ma configuration HA qui ne soit pas bonne

http:
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.30.33.0/24
    - 192.168.xx.196
    - 192.168.xx.0/24
  ip_ban_enabled: true
  login_attempts_threshold: 5

L’ajout de l’ip de mon HA et globalement de mon réseau semble régler le problème.
Je pousse les tests avant de le passer en Résolut, mais maintenant il répond bien via Nginx Proxy manager.

1 « J'aime »

Bon cette solution semble bien fonctionner pour un HA qui a Duckdns.
Par contre, pour un système totalement autonome sur mon réseau, cela ne fonctionne pas.
Très certainement lié au fait que je n’ai pas de certificat dans /ssl
Je dois trouver la solution pour auto générer mes propres self certificat pour pouvoir confirmer et continuer.

Voila, je crois avoir enfin trouvé mes solutions.

Contexte :
J’ai mes propres noms de domaine chez mon registrar.
Chez moi une box internet (comme tout le monde)
Une machine avec dessus Proxmox version 8.2.2
Des VMs ou des LXC Container (Node-Red, HA, Nextcloud, Nginx Proxy manager) et d’autres.
Des Machines Physique avec HA
Une sur un Pi4 local HA sans Duckdns
Une sur Hardkernel ODROID-N2/N2+ HA avec Duckdns

Nginx Proxy manager en 192.168.x.193
Les ports 80 et 443 de la box forwardé sur Nginx Proxy manager en 192.168.x.193

Nginx Proxy manager tous les certificatc Let’s Encrypt

Pi4 local HA sans Duckdns en 192.168.x.199
Hardkernel ODROID-N2/N2+ HA avec Duckdns en 192.168.x.196
VM HA sans Duckdns en 192.168.x.82

Configuration dur reverse proxy

Pi4


Hardkernel ODROID-N2/N2+ HA avec Duckdns


VM HA sans Duckdns


Jusqu’à là, la subtilité est de déclarer en HTTP et non HTTPS dans le Scheme les machines qui n’ont pas de certificat contrairement à la machine avec Duckdns qui a des certificats générés par Duckdns.

Ensuite, les configuration.yaml (configuration minimum qui fonctionne)

Pour les machine qui n’ont pas de certificats (non duckdns)

default_config:
http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.x.193 # Remplacez par l'adresse IP du serveur proxy

Pour les machines qui ont des certificats duckdns

default_config:

http:
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.30.33.0/24
    - 192.168.x.196
    - 192.168.x.0/24
  ip_ban_enabled: true
  login_attempts_threshold: 5

Et surtout dans tous les cas, ne pas oublier d’activer les autorisations connexions extérieur.
Paramètres / Système / Réseau

Si vous n’avez pas ce paramètre, c’est que le Mode avancé n’est pas activé
Cliquez sur l’utilisateur en bas a gauche puis

Voila je crois avoir fait le tour des étapes à suivre pour éviter le 400 Bad Request, en tout les cas, pour moi, d’avoir bien respecté ces paramètres, maintenant tous mes HA sont accessible de l’extérieur en HTTPS (validé avec un smartphone)

Effectivement les certificats sont portés par ton reverse proxy
Pas besoin den avoir en local surtout si en plus ils sont différents là ça ne peut pas fonctionner car tu vas casser la chaîne de certification

Effectivement, au début je savais que c’était une truc lié aux certificats, et je cherchais a comprendre comment le proxy pouvait republier les certificats.
Et en fait, je prenais le problème à l’envers, et c’est HA qui indique qui a les certificats et ne s’en occupe pas. d’ou le fait de déclarer l’ip du proxy.
Et oui, le réseau, c’est pas simple :slight_smile:
Je crois, en fait, que c’est en écrivant mon problème que je me suis mis a me poser les bonnes questions dans le bon ordre.

1 « J'aime »