Edita:
@kasperd a mentionné que vous pouvez définir GatewayPorts pour l'utilisateur afin de ne pas avoir à utiliser nginx. Je laisse la solution de contournement ici pour les autres.
Ajouter ceci à /etc/ssh/sshd_config
Match User <username>
GatewayPorts yes
Réponse originale :
J'ai trouvé une solution pour y parvenir avec ssh et nginx. Ce n'est pas parfait car je dois installer un serveur nginx sur A avec un proxy. J'ai dû activer ssl et donner à cette instance nginx un certificat ssl propre.
La solution se présentera donc comme suit : C exécutera la commande suivante pour créer un relais entre A et B :
ssh -R 445:1.0.0.2:444 user@1.0.0.1 -p 22
Ainsi, toute entrée sur le port 445 de 1.0.0.1 sera redirigée vers 1.0.0.2:444. Ainsi, un utilisateur local sur A peut maintenant exécuter wget https://localhost:445 --no-check-certificate
pour obtenir la page d'index de votre service web. Cependant, il n'est pas encore disponible au public. (au cas où vous vous poseriez la question : Le port 445 est correct, je dois utiliser un port non utilisé pour la suite).
J'ai donc créé un serveur nginx sur A qui redirigera tout le trafic du port 443 vers le port 445. J'ai utilisé la configuration suivante :
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
server_name proxy.<your-domain>.com;
location / {
proxy_pass https://127.0.0.1:445;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
}
Vous pouvez maintenant utiliser votre navigateur web (en mode incognito sur Firefox pour éviter les problèmes avec le certificat) pour accéder à https://proxy .com:443 et obtenez le résultat de votre Webservice. L'IP du proxy..com doit être 1.0.0.1.
Ce qui me déplaît ici, c'est que je dois créer un nouveau serveur web qui créera une nouvelle session cryptée au lieu de simplement rediriger celle de mon service web situé sur B . Cependant, il s'agit d'une bonne solution de contournement jusqu'à ce que je trouve une meilleure solution.