3 votes

Boucle de redirection du serveur Nginx après SSL

J'ai eu quelques problèmes pour faire fonctionner SSL sur mon serveur Nginx. Après avoir passé du temps à essayer et à suivre des tutoriels, j'ai finalement réussi à le faire fonctionner.

Ensuite, lorsque j'ai voulu accéder au serveur hipchat, j'ai été surpris par un message disant : "la page ne redirige pas correctement".

Lorsque je regarde l'onglet réseau dans inspecter les éléments, je vois ce qui suit. Code d'état : 301 déplacé définitivement.

Avant que je ne fasse fonctionner le SSL, le site web fonctionnait. Mais après avoir fait fonctionner SSL, il continue à tourner en boucle.

Voici le contenu de mon fichier .conf que j'ai placé dans le dossier /etc/nginx/sites-available.

            # This is your Hipchat node's DNS name
            upstream chat {
                server hipchat.example.nl:80;    
                keepalive 32;
            }

            # HTTP to HTTPS redirection
            server {
                listen         80;
                server_name    hipchat.example.nl;
                return         301 https://$host$request_uri;
            }

            # 
            server {
                listen                  443;
                server_name             hipchat.example.nl;
                ssl_certificate /example.com.chained.crt;
                ssl_certificate_key /example.com.key;
                ssl on;
                ssl_session_cache  builtin:1000  shared:SSL:10m;
                ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
                ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
                ssl_prefer_server_ciphers on;

                location / {
                    proxy_http_version          1.1;
                    proxy_set_header Connection "";
                    proxy_set_header            Host $host;
                    proxy_set_header            X-Real-IP $remote_addr;
                    proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header            X-Forwarded-Proto $scheme;
                    proxy_read_timeout          90;
                    proxy_pass                  http://chat;
                }
            }

C'est peut-être juste une erreur de débutant puisque je n'ai jamais fait quelque chose comme ça, mais quelqu'un peut-il m'aider à résoudre ce problème ?

edit : Je viens d'aller un peu plus loin (peut-être). Mais maintenant je n'arrive pas à trouver le chat. D'abord j'ai changé mon proxy pass en http://127.0.0.1:8095 ; Après cela, j'ai redémarré nginx, puis lorsque j'essaie de me connecter au site web, j'ai accès à une page standard d'Atlassian Crowd. Ce qui est bizarre car je suis censé aller sur hipchat, qui fonctionne lorsque je supprime toutes les références à SSL.

1 votes

D'après mon expérience, une possibilité est qu'il y ait une redirection du côté de l'application vers http. Une autre possibilité est quelque chose avec des "dns avancés" comme Cloudflare, si vous les utilisez.

0 votes

Voulez-vous dire la ligne "htt p : / /chat ;" dans le bloc serveur ? Nous n'utilisons pas de services comme Cloudfare.

0 votes

Je ne sais pas si hipchat installé localement doit savoir qu'il est sur https. S'il se dit sur http alors vous avez la redirection. Vérifiez juste cette possibilité. Le proxy pass est correct

1voto

Le problème a été résolu lorsque j'ai également configuré le tomcat en spécifiant les propriétés proxyName, proxyPort, scheme et secure connector dans server.xml.

Ma configuration du connecteur ressemble à ce qui suit :

    <Connector port="8080" protocol="HTTP/1.1"
        connectionTimeout="20000"
        enableLookups="false"
        acceptCount="100"
        proxyName="<<your_host_name>>"
        proxyPort="443"
        scheme="https"
        secure="true"/>

-1voto

user7329477 Points 11

Il s'agit du nom DNS de votre nœud Hipchat.

            upstream chat {
                server hipchat.example.nl:80;
                keepalive 32;
            }

            # HTTP to HTTPS redirection
            server {
                listen         80;
                server_name    hipchat.example.nl;
                location / {
                return         301 https://$server_name$request_uri;
                }
            }

            #
            server {
                listen                  443 ssl;
                ssl on;
                server_name             hipchat.example.nl;
                client_max_body_size 10m;
                ssl_session_timeout 180m;

                location / {
                    proxy_pass                  http://localhost:8080;
                }
            }

Le problème a été résolu lorsque j'ai changé le proxy en localhost et changé mon connecteur dans la configuration de Tomcat. Vous pouvez en lire plus ici si vous en avez besoin. guide

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X