Avis config reverse proxi

Bonjour,

Je dispose d’un hyperviseur (proxmox) pour l’instant une vm yunohost avec un certificat letsencrypt.
Je souhaiterai maintenant pouvoir accéder uniquement en https à d’autres services sur d’autres vm.

Cependant j’aurais besoin de conseil / retour d’expérience sur les choix techniques à prendre.

I) Mon idée première est d’accéder aux autres services via le reverse proxy interne de yunohots grâce à cette application. J’utiliserais donc un seul sous domaine (avec des urls /app1 /app2 …).
J’ai déjà testé cette idée, mais j’ai quelques problèmes pour rediriger correctement les requêtes entre ma vm yunohost et mes autres services. Et surtout je ne sais pas si c’est le plus approprié, notamment au niveau du ssl.

II) Ma deuxième idée est de mettre un reverse proxy en frontal et de configurer celui-ci pour pouvoir accéder, par exemple :

  • à mon instance yunohost via le sous-domaine yunohost.domaine.fqdn
  • à une instance cozy via le sous-domaine cozy.domaine.fr
  • à tous les autres « truc » / test via un sous-domaine « four tout » test.mondomaine.fqdn

Sauf que Letsencrypt ne gère pas les wilcard, donc dans ce cas, comment effectuer ma sécurisation ssl ?

  1. Dois-je mettre touts les certificats ssl sur le reverse proxy ? En fonction du nom de domaine utiliser on redirige vers une machine avec le certificat correspondant.

  2. Ou utiliser les certificats letsencrypt au sein des différentes VM ?

  3. Ou y a-t-il une meilleure solution (toujours en utilisant letsencrypt ?)

  4. Ou alors la solution payante et de facilité : acheter un wilcard pour mondomaine.fqdn et de rediriger depuis le reverse proxy frontal ?
    Reverse Proxi qui serait alors celui de mon pfSense, car oui en réalité tous passe en premier par un pfSense avant d’arriver sur le réseau interne du proxmox. Cependant, je n’ai pas vraiment compris comment faire pour utiliser letsencrypt avec bsd, c’est pourquoi je ne l’ai pas mentionné avant.

Personnellement je pencherai plus vers la II1, mais je ne sais pas si cela est possible.

Merci d’avance pour votre retour aide ! ( surtout si vous avez pris le temps de tout lire !)

Salut,
Il existe une app toute appropriée pour reverse proxy vers d’autres sites : redirect_ynh. J’avais fait la version originale mais il me semble que le fork d’opi est bien mieux : https://github.com/opi/redirect_ynh

Tu peux rediriger depuis des chemins /app1 ou des sous-domaine sans problème. Par contre il faut faire attention que tes apps destination supportent bien de se faire “reverse proxer”. Par exemple certaines n’acceptent que les sous-domaines (Odoo), d’autres tournent bien en chemin mais nécessitent un changement d’option (couchpotato), etc…

Concernant le SSL, vu que c’est sous reverse proxy toutes les apps seront sous le SSL de ton YNH il me semble si tu y accèdes via /app ou leur sous-domaine.
L’app YNH Letsencrypt gère le multi-domaine sans problème. Il te suffit d’ajouter des sous-domaines et de réinstaller l’app letsencrypt (à moins qu’il y ait d’autres méthodes moins radicales ?)

++

Salut, merci de m’avoir répondu.

Donc tu me conseillerais quand même d’utiliser le reverse proxy de yunohost pour “proxifier” des applications hébergées sur d’autres VM/machines et accessible via un autre sous domaine. OK.

Du coup, si on veut accéder à une application via https://monapp.mondomaine.fqdm sans passer par le portail yunohost, il faut :

  1. Créer un nouveau domaine dans YNH
  2. générer un nouveau certificat Letsencrypt avec le(s) ancien(s) nom(s) de domaine(s) + le nouveau
  3. déclarer l’url monapp.mondomaine.fqdm dans le fichier /etc/ssowat/conf.json.persistent
  4. installer le fork de ton application (merci à toi et à l’auteur du forck soit dit en passant)
  5. configurer le transfère dans le fichier .conf de l’application

C’est ça ou j’ai oublié quelque chose ?

Quand tu parles de "L’app YNH Letsencrypt ", tu parles bien de cette procédure ?

Mais vu que l’application est sous l’application du YNH, l’application peut elle être déjà sous SSL?
Par exemple, il me semble que cozy cloud ne s’installe que en https…

Merci encore.

Salut, en fait ce sera plus simple je pense car il n’y aura pas besoin de tes étapes 3 et 5.

  1. A l’install de l’app redirect il te demandera si tu veux une redirection non publique (donc protégée par le portail YNH) ou publique (donc accessible depuis l’URL sans voir le portail). Ca peut servir par exemple si tu veux donner accès depuis l’extérieur de ton domicile à une app locale, que tu protègeras du coup par le panel … Ou moi j’utilise ca pour protéger derrière le panel des conteneurs Docker non accessibles autrement.

  2. Aucun fichier conf n’est à transférer. Mais il est possible que dans tes applications de destination il faille changer leur configuration pour qu’elles acceptent ton reverse proxy. Par exemple dans Couchpotato, il faut déclarer le chemin dans les options. Par contre, aucune option n’est à changer sur ta machine YunoHost. Toutes les options sont normalement demandées lors de l’install de l’app redirect

Enfin pour Letsencrypt je parlais de l’app qui permet de faire la procédure de manière automatique : https://github.com/alexAubin/letsencrypt_ynh
Pour le SSL, il sera géré par ta machine YunoHost. Peu importe que l’application vers laquelle YNH redirige soit SSL ou pas (tant qu’il s’agit d’une redirection de type proxy).
Après encore une fois le problème de l’app redirect est que les apps vers lesquelles rediriger ont des comportements très divers et certains n’apprécient pas de se faire passer sous un proxy. Il faut voir au cas par cas

Bon courage :slight_smile:

ok merci :slight_smile:
Je regarde cela.

Re, j’ai enfin pu essayer cette app et faire d’autres tests cependant, j’ai toujours quelques problèmes concernant CozyCloud.

Tout d’abord, je tiens à signaler que la redirection pour une application hebergé sur la meme machine fonctionne et la redirection vers une VM Centreon également.

Mais concernant cozycloud quand je clique sur la boxe je reste invariablement sur le portail de YNH.

J’ai essayé de changer les configurations qu’a generé l’app mais sans grand succes.
Toutes les redirections ont été faites en mode proxy. Donc avec cette configuration :

location /cozy {
  proxy_pass        http://192.168.1.103/;
  proxy_redirect    off;
  proxy_set_header  Host $host;
  proxy_set_header  X-Real-IP $remote_addr;
  proxy_set_header  X-Forwarded-Proto $scheme;
  proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header  X-Forwarded-Host $server_name;

  # Include SSOWAT user panel.
  include conf.d/yunohost_panel.conf.inc;
  more_clear_input_headers 'Accept-Encoding';
}

De plus, sauf erreur de ma part, je ne vois pas de messages significatif dans les logs.

Quelqu’un pourrait il me dire se qui ne va pas ?
N’est ce pas parseque Cozy embarque lui aussi un reverse proxy nginx ? Se qui met deux reverse proxy nginx en cascade…

Merci par avance.

Edit : l’erreur que j’avais avec centreon était toute bête : mauvais chemin. :sweat: