• Serveurs
  • [Résolu] Partage port 443 - portshare (OpenVPN), NGINX

Bonjour !

Etant nouvel inscrit sur ce forum, un petit mot : j'apprécie beaucoup ce dernier, je le trouve très complet, joli et la communauté a l'air active. Ca fait quelques mois que j'y traîne, pour suivre les différents tutos, etc.

J'ai cependant un (petit) problème !

J'ai mon Kimsufi sous Debian, sur lequel j'ai installé une Seedbox (grâce à cet excellent script Script Ex_Rat). J'ai ajouté Plex, ainsi qu'OpenVPN. J'utilise donc Nginx.

Tout fonctionne très bien et c'est cool.

Pour OpenVPN, je souhaitais l'utiliser sur le port 443 (comme certains d'entre vous doivent se douter, le paramétrer sur ce port permet de pouvoir s'y connecter de partout, le port 443, autrement dit HTTPS, n'étant bloqué nul par ou presque). La petite difficulté était que le port 443 était déjà utilisé par NGINX, pour rutorrent, seedbox-manager, etc. L'astuce, pour partager le port entre ces différentes applications (OpenVPN et Nginx) est d'utiliser l'option port-share d'OpenVPN.
En gros, je dis à Nginx d'écouter un autre port pour le SSL (ex
listen 4443 default_server ssl;
, en l'occurence le port 4443), puis dans les paramètres d'OpenVPN, j'ajoute
port-share 127.0.0.1 4443
On redémarre les services concernés, et ça fonctionne : le port 443 est partagé.

Mon problème est le suivant : dans la barre d'adresse, lorsque je vais à https://MONIP/rutorrent, il me redirige tout seul vers https://MONIP:4443/rutorrent.
Je souhaiterai que cela soit transparent, autrement dit que l'adresse reste https://MONIP/rutorrent. De plus, cela oblige à s'identifier deux fois : on arrive sur https://MONIP/rutorrent et on doit s'identifier dans la boîte de dialogue, puis on arrive sur https://MONIP:4443/rutorrent et il faut se ré-identifier.

Ce qui est assez curieux, c'est que si ensuite j'efface de la barre d'adresse le "4443", que j'actualise, je tombe bien sur https://MONIP/rutorrent sans problème.

Quelqu'un aurait une idée ? Merci d'avance !

Petit récapitulatif des données intéressantes pour mon cas :

etc/openvpn/server.conf, début du fichier :
# Serveur TCP/443
mode server
proto tcp
port 443
port-share 127.0.0.1 4443
dev tun
etc/nginx/sites-enabled/rutorrent.conf, début du fichier :
server {
	listen 80 default_server;
	listen 4443 default_server ssl;
	server_name _;

	index index.html index.php;
	charset utf-8;
	client_max_body_size 10M;

	ssl_certificate /etc/nginx/ssl/server.crt;
	ssl_certificate_key /etc/nginx/ssl/server.key;

	access_log /var/log/nginx/rutorrent-access.log combined;
	error_log /var/log/nginx/rutorrent-error.log error;

	error_page 500 502 503 504 /50x.html;
	location = /50x.html { root /usr/share/nginx/html; }

	auth_basic "seedbox";
	auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd";

	location = /favicon.ico {
		access_log off;
		log_not_found off;
	}

	## début config accueil serveur ##

	location ^~ / {
	    root /var/www/base;
	    include /etc/nginx/conf.d/php;
	    include /etc/nginx/conf.d/cache;
	    satisfy any;
	    allow all;
	}

	## fin config accueil serveur ##

	## début config proxy ##

	location ^~ /proxy {
	    root /var/www;
	    include /etc/nginx/conf.d/php;
	    include /etc/nginx/conf.d/cache;
	}

	## fin config proxy ##

	## début config rutorrent ##

	location ^~ /rutorrent {
	    root /var/www;
	    include /etc/nginx/conf.d/php;
	    include /etc/nginx/conf.d/cache;

	    location ~ /\.svn {
		    deny all;
	    }

	    location ~ /\.ht {
		    deny all;
	    }
	}

	location ^~ /rutorrent/conf/ {
		deny all;
	}

	location ^~ /rutorrent/share/ {
		deny all;
	}

	## fin config rutorrent ##

	## début config munin ##

	location ^~ /graph {
	    root /var/www;
	    include /etc/nginx/conf.d/php;
	    include /etc/nginx/conf.d/cache;
	}

	location ^~ /graph/img {
	    root /var/www;
	    include /etc/nginx/conf.d/php;
	    include /etc/nginx/conf.d/cache;
	    error_log /dev/null crit;
	}

	location ^~ /monitoring {
	    root /var/www;
	    include /etc/nginx/conf.d/php;
	    include /etc/nginx/conf.d/cache;
	}

	## fin config munin ##

	## début config seedbox-manager ##

	location ^~ /seedbox-manager {
	alias /var/www/seedbox-manager/public;
	    include /etc/nginx/conf.d/php-manager;
	    include /etc/nginx/conf.d/cache;
	}

        ## fin config seedbox-manager ##

        ## config utilisateurs  ##
J'ai (enfin) trouvé !!

Nginx a une fonction dédiée à cela, qui s'appelle "port_in_redirect".

Il suffit d'ajouter la ligne suivante à la configuration de ses sites (par exemple à /etc/nginx/sites_enabled/monsite.conf) :
port_in_redirect off;
Redémarrer Nginx :
/etc/init.d/nginx restart
Et c'est bon ! Les ports ne s'affichent plus dans la barre d'adresse.
2 ans plus tard
bonjour,
alors j'ai le même souci sauf que moi j'ai installé openvpn-access-server et le fichier etc/openvpn/server.conf n'existe pas, enfin il doit exister mais autre part donc si quelqu'un pourrait n'indiquer le chemin exact ce serait sympa. merci
précédé d'un
updatedb
si cela n'a jamais été fait
merci pour les reponses mais il le trouve pas il doit surement porté un autre nom
Exocet wrote:merci pour les reponses mais il le trouve pas il doit surement porté un autre nom
C'est donc que tu ne l'as pas créé... C'est le fichier de configuration de ton serveur OpenVPN. Que tu dois créer dans le process de setup du dit serveur.
Avec openvpn-access-server y a pas besoin tout se configure dans le web UI mais je peux pas y accéder parce que j'ai un problème avec le port 443

j'ai utilisé ce tuto : http://korben.info/installer-openvpn.html

ps: merci pour le lien Jean-luc je vais regarder ça
Ah ok, je ne savais pas que tu avais utilisé ce truc, navré. Perso je ne sais que l'installer à la main.
Répondre…