Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/10/2020, à 10:27

Vincent.Tr

Nginx, mon ip publique et mon nom de domaine: comportement

Bonjour tout le monde,

J'ai du mal à comprendre les résultats que j'obtiens, après avoir installé et configuré qbittorrent-nox et nginx, redirigé certains ports et mis en place un A record pour mon nom de domaine. Je vais essayer d'être plus clair...

Déjà imaginons que:
- mon nom de domaine est: salutpoilu.ch
- mon ip publique est: 158.36.210.115
- l'ip locale de mon serveur: 192.168.1.2
- l'interface web de qbittorrent est configuré sur le port: 2222 (et non le port par défaut, 8080)
- sur mon routeur, le port https 443 est redirigé vers l'ip locale de mon serveur
- j'ai configuré un A-record pour torrent.salutpoilu.ch vers mon ip publique

J'ai donc, comme dit ci-dessus, installé nginx puis créé et édité le fichier de configuration suivant (selon les instructions de ce tuto):

server {
  server_name torrent.salutpoilu.ch;

  access_log /var/log/nginx/torrent.salutpoilu.ch.access;
  error_log /var/log/nginx/torrent.salutpoilu.ch.error;

  location / {
    proxy_pass              http://192.168.1.2:2222/;
    proxy_set_header        X-Forwarded-Host        $server_name:$server_port;
    proxy_hide_header       Referer;
    proxy_hide_header       Origin;
    proxy_set_header        Referer                 '';
    proxy_set_header        Origin                  '';
    add_header              X-Frame-Options         "SAMEORIGIN";
  }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/torrent.salutpoilu.ch/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/torrent.salutpoilu.ch/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


    add_header Strict-Transport-Security "max-age=31536000" always; # managed by Certbot


    ssl_trusted_certificate /etc/letsencrypt/live/torrent.salutpoilu.ch/chain.pem; # managed by Certbot
    ssl_stapling on; # managed by Certbot
    ssl_stapling_verify on; # managed by Certbot

}
server {
    if ($host = torrent.salutpoilu.ch) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


  listen 80;
  server_name torrent.salutpoilu.ch;

  access_log /var/log/nginx/torrent.salutpoilu.ch.access;
  error_log /var/log/nginx/torrent.salutpoilu.ch.error;

  location / {
    proxy_pass              http://192.168.1.2:2222/;
    proxy_set_header        X-Forwarded-Host        $server_name:$server_port;
    proxy_hide_header       Referer;
    proxy_hide_header       Origin;
    proxy_set_header        Referer                 '';
    proxy_set_header        Origin                  '';
    add_header              X-Frame-Options         "SAMEORIGIN";
  }




}

Ce que j'aimerais comprendre:
- lorsque je tape dans un navigateur torrent.salutpoilu.ch, je suis renvoyé vers l'interface web de qbittorrent-nox en https, ce qui est très bien, c'est ce que je souhaite... MAIS POURQUOI, lorsque je tape simplement mon ip publique, j'accède à l'interface web de qbittorrent-nox en non sécurisé (http) et sans même avoir à préciser le port de l'interface web (2222) ?? Sachant, comme je l'ai dit plus haut, que la seule redirection de port que j'ai faite dans mon routeur est le 443 vers l'ip locale de mon serveur...

J'espère que ma question est claire,que j'ai choisi le bon endroit pour la poser (bien conscient qu'il ne s'agit pas directement d'une question sur ubuntu server) et que j'ai donné tous les éléments nécessaires pour y répondre.

Hors ligne

#2 Le 06/10/2020, à 10:35

Vincent.Tr

Re : Nginx, mon ip publique et mon nom de domaine: comportement

En fait excusez-moi mais ma question est plutôt:
- comme le A-record de torrent.salutpoilu.ch renvoie vers mon ip publique, il me semble que taper simplement mon ip publique devrait avoir le même effet. Or dans un cas, je suis en https, dans l'autre non.

Hors ligne

#3 Le 08/10/2020, à 08:39

bruno

Re : Nginx, mon ip publique et mon nom de domaine: comportement

Bonjour,

Cela n'a rien à voir avec la résolution de nom (DNS). Ce que tu observes est conforme à la configuration de ton serveur nginx.

Si tu fait une requête en HTTP vers torrent.salutpoilu.ch, le second bloc server {} redirige la requête vers https hmm/torrent.salutpoilu.ch grâce à ceci :

    if ($host = torrent.salutpoilu.ch) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

Si tu fais une requête en HTTP vers l'adresse IP, la condition ci-dessus n'est plus vérifiée et la requête est traitée conformément au second bloc server {}

#4 Le 10/10/2020, à 08:15

Vincent.Tr

Re : Nginx, mon ip publique et mon nom de domaine: comportement

Bonjour,

Merci pour ta réponse! J'avoue ne pas avoir le niveau pour déchiffrer le fichier de configuration... J'espère remédier à cela gentiment!

Je crois avoir compris ta réponse mais ce que je ne comprends toujours pas c'est que, si la condition que tu as décrite n'est plus vérifiée en faisant une requête HTTP vers l'ip, et que donc (si j'ai bien compris) elle n'est pas redirigée vers HTTPS, elle ne devrait pas aboutir puisque mon port HTTP sur mon routeur n'est pas redirigé vers mon serveur. Seul le port HTTPS est redirigé.

Ou mon raisonnement est faux ?

Hors ligne

#5 Le 10/10/2020, à 19:48

bruno

Re : Nginx, mon ip publique et mon nom de domaine: comportement

Est-ce que tu testes cela depuis ton réseau local ou depuis l'extérieur ? Avec l'IP locale ou l'IP publique ?

Quoi qu'il en soit, si tu veux forcer le HTTPS, tu peux remplacer toute la partie hôte virtuel sur le port 80 par :

server {
  listen 80;
  server_name torrent.salutpoilu.ch;
  return 301 https://$server_name$request_uri;
}

#6 Le 11/10/2020, à 09:06

Vincent.Tr

Re : Nginx, mon ip publique et mon nom de domaine: comportement

Alors je teste depuis l'extérieur et avec mon ip publique. Merci pour le code!

Hors ligne