Rediriger un port vers un autre port dans un sous domaine

Tags: #<Tag:0x00007f63f4fa01e0>

Bonjour,
Après bien des péripéties j’ai enfin réussi à mettre en place mon serveur.
Wordpress, piwik , Nextcloud ainsi que son office : collabora online ( docker ) et un forum.
Tout fonctionne, en https avec lets’encrypt sur des sous domaine approprié ( sauf Wordpress qui est sur le domaine principal ).
Avec les logiciels ci dessus tout marche avec apache dans la dernière version de Debian.

Sauf que voilà, quand ce sont des logiciels installé via des script et qui fonctionne sur un port spécifique ( 5000 pour l’exemple ) ça se complique. ( ajenti et un autre programme de serveur de jeu)

Quand je vais sur le domaine principal, si mon navigateur est gentil, il me laisse accéder à mon programme sur son port spécifique en http ou en https avec un certificat auto-signé.
J’ai remarqué aussi que les navigateurs récent ( firefox 57-58, chrome 63-64, edge aussi ) détestent les certificats auto-signé mais surtout force obligatoirement le https même si il n’existe pas/plus.
Alors que les plus ancien ( firefox esr sur vista ) nous laissent le choix/ ne nous redirige pas de force vers la version https.
Je suis certain que ce sont ces espiègles navigateurs car quand je vait sur un navigateurs qui n’avait jamais connu la version https du site en question, il me laisser y accéder ( Edge ).

Ce qui fait que je peut accéder à mes applications uniquement si je n’ai jamais consulté la version https de mon application ( parce que le certificat n’est pas valide et que donc il ne peut pas charger le site si la version https à, un jour, fonctionné avec un certificat valide ( le’s encrypt) )

J’ai fait deux petit schéma :

Ma situation actuelle :

Mon souhait :

Quelques petites infos supplémentaire, Ajenti crée, lui-même ses certificats auto signé, je peut ( parfois… )m’y connecter en https.
Mon autre programme non, en plus, il n’écoute que sur son port en http.
Je croit qu’il faut que j’utilise apache ( une fois ça à marché avec apache sans virtualhost spécifique : parfois il y a des choses qui marchent sans que je ne sache pas trop pourquoi…)

Enfin j’aimerais pouvoir consulter ces logiciels sur un sous domaine spécifique mais aussi ( et surtout ) sur le port Https de base ( 443 ) avec un certificat let’s encrypt valide.
Les logiciels sont en TCP.

Merci de votre aide,
Ertuit :slight_smile:

Ps: faîte abstraction des erreurs dans les schémas… notamment entre internet et le pare-feu…

Bonjour,

Tu peux utiliser apache en reverse proxy pour ne gérer les accès extérieur que par lui. En gros, en accedant à https://ajenti.monserveur.fr un client tombera sur un vhost apache qui servira http://localhost:5000. Du coup, avec ce fonctionnement, plus besoin de configurer le SSL sur les différents logiciels, c’est apache qui s’en occupe.

1 J'aime

Bonjour,
Un grand Merci, ça fonctionne !

Pour ceux qui liront ce messages dans 6 mois :
Ma version de Apache 2.4.

Ma configuration pour mon soucis ( virtual host apache ) :

Configuration VirtualHost

Remplacer “sous.domaine.tld” par votre sous domaine.
Remplacer “5000” par le port de votre logiciel/application.

<VirtualHost *:80>
ServerAdmin postmaster@domaine.tld
ServerName sous.domaine.tld
ServerAlias sous.domaine.tld
ProxyPass / http://localhost:5000/
ProxyPassReverse / http://localhost:5000/
ProxyPreserveHost On
TransferLog /var/log/apache2/er_access.log
ErrorLog /var/log/apache2/er_error.log
/VirtualHost>
ps: il y a un bug, on ne peut pas voir le " < " au début de la ligne juste au dessus. :slight_smile:

Merci :slight_smile:

1 J'aime