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;
}
}
Si je saisis test
et testing
,
la boîte de dialogue disparaîtra et réapparaîtra.
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 :