[RESOLU] Jeedom SSL avec HAPROXY en passthrough

Bonjour tout le monde,
je viens de changer mon NUC et pour fêter ça, je passe sur une nouvelle VM Jeedom en V4.
Quelle claque par rapport à la V3… :grin: (pourquoi j’ai attendu tant de temps???)

Vu que j’héberge aussi une VM Nextcloud et que j’ai besoin du SSL pour Telegram, j’ai donc mmonté une VM HAPROXY qui renvoie le flux sur mon SNI Jeedom vers Jeedom et le reste vers l’autre VM.

Tout marche à la perfection sauf sur un bémol : je n’arrive plus à avoir la double authentification sur ma page d’accès même lorsque je viens de l’extérieur.
En effet, suite au passage dans HAPROXY, l’ip d’origine est remplacée par celle de mon routeur (donc du LAN) et du coup, Jeedom ne demande plus la seconde authetification.

J’ai bien recherché partout pour forcer HAPROXY à ne pas switcher l’IP mais celà n’est pas possible en passthrough (uniqement en OFFLOADING mais dans ce cas, je perds l’accès Telegram puisque je suis en HTPP entre HAPROXY et Jeedom) .

J’en viens finalement à ma question : es-il possible d’activer la double auth dans tous les cas de figure, soit par le biais d’une option, soit en attendant une prochaine màj du Core, soit en modifiant moi-même le fichier php de la page d’accueil?

Un grand merci par avance pour toute réponse :wink:

Lionel

Salut,
Ton haproxy devrait rajouter un header X-forwarded-for avec l’ip d’origine du client en principe. Et de mémoire le core vérifie entre autre ce header.
Si de fait ton proxy ne fourni pas l’ip client ça va être un problème

Hello Mips,
merci pour ta réponse!

Est-ce que tu parles de X-Fordarded-For?
Si oui, ce header n’est pas utilisable en dehors du mode http.
Le souci est que si je passe en http, je laisse tomber le passthrough et donc Telegram ne fonctionnera plus puisque j’entre dans la VM en http…

A bien avoir retourné le pb, il ne me reste que la solution d’activer la double auth dans tous les cas de figure.

Lionel

Pour Telegram ce n’est pas un problème, tu exposes ton ip publiques en HTTPS via HA Proxy et redirige vers Jeedom en http. De là tu ajoutes les headers que tu veux sans casser la requête.

1 J'aime

J’allais dire la même chose : ou termine-tu le ssl Pour l’instant ? Sur jeedom ?

Ça veut aussi dire que pour l’instant tout tes clients ont l’ip de ton routeur (dont l’ip est dans la whitelist de jeedom) ? C’est un problème ça, tu ne sauras pas ban une ip qui spam etc

Telegram n’est pas un problème je confirme.
C’est ma config : NPM qui est en frontal avec tout le https, en internet mon nginx jeedom est en http car zone de confiance.

Oulaaaa, merci à tous pour toutes ces réponses.
En fait j’avais ça par le passé :
HAPROXY installé sur ma (vieille) VM Jeedom en offloading il reçoit tout le traffic https, le décode avec le certificat let’s encrypt puis renvoie en http sur chacune des VM concernées en fonction du suffixe (/ => Jeedom ou /nextcloud => Nextcloud)
Ca marchait très bien pour le https dans Jeedom et Nextcloud et Telegram impecc aussi.

Sauf que maintenant, j’ai mis HAPROXY sur une VM séparée…et là Telegram ne marche plus (il ne récupère plus les clients et j’ai une erreur dans les logs : pas moyen de contacter l’url telegram sous Jeedom avec le token )
De plus Jeedom me dit aussi que la config externe est en erreur

Oui, en effet…j’ai bien les requêtes en provenance du routeur qui arrivent sur Jeedom :frowning:

Finalement, j’ai retenté HAPROXY en offloading avec traitement du flux https via HAPROXY et suivi en http sur le LAN et désormais …
ça marche!

Je ne comprends pas pourquoi ça ne passait pas avant avec Telegram et même sous la conf Jeedom.

Merci à vous tous!

Attention Telegram utilise uniquement les ports 443 ou 8443 pour le HTTPS, si tu ne savais pas.

En effet, je tablais uniquement sur le 443 via le routeur mais je n’avais pas pensé que je pouvais aussi ouvrir le 8443 au besoin.

Merci