1 votes

La boîte de dialogue du mot de passe NGINX ne disparaît pas

J'ai activé la protection par mot de passe sur un sous-domaine en utilisant NGINX et j'ai écrit un petit script qui permet d'ajouter facilement des utilisateurs. Cependant, lorsque je saisis le mot de passe, la boîte de dialogue disparaît et réapparaît immédiatement.

Voici mon script de génération de mot de passe :

#!/bin/bash
if [ -z "$1" ]
  then
    echo "Nom d'utilisateur attendu comme premier paramètre"
elif [ -z "$2" ]
  then
    echo "Mot de passe attendu comme deuxième paramètre"
else
  htpasswd -b /home/me/.passwords $1 $2
  /etc/init.d/nginx reload
fi

En cours d'exécution :

./create-password test password

Je peux voir la sortie suivante :

Ajout du mot de passe pour l'utilisateur test

[ ok ] Rechargement de la configuration de nginx (via systemctl) : nginx.service.

A l'intérieur de /home/me/.passwords, je peux voir l'entrée suivante :

test:$apr1$t.LpBHkW$bEBEMK1HRBqAvvkB9cQ.I.

A l'intérieur de ma configuration nginx (/etc/nginx/sites-enabled/blah), j'ai ceci :

server {
        listen 80;
        server_name blah.example.com;
        auth_basic "Contenu restreint";
        auth_basic_user_file  /home/me/.passwords;
        location / {
                proxy_pass      http://127.0.0.1:6999;
                proxy_redirect  off;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

description de l'image

Si je saisis test et testing,

description de l'image

la boîte de dialogue disparaîtra et réapparaîtra.

description de l'image

Je ne vois aucune erreur dans le error.log de NGINX, le access.log montre seulement une erreur 401, Non autorisé :

___.___.___.___ - test [16/Avr/2016:09:36:38 +0000] "GET / HTTP/1.1" 401 1421 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/49.0.2623
.110 Safari/537.36"

En annulant la boîte de dialogue du mot de passe, je vois ceci :

description de l'image

0voto

Kevin Lyda Points 459

Je fais tourner Jenkins sur ce sous-domaine, dès que j'ai changé mon nom d'utilisateur et mot de passe http pour qu'ils correspondent à ceux de Jenkins, cela a fonctionné.

Jenkins utilise probablement aussi les en-têtes d'authentification http.

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