A senha de autenticação básica do Nginx não funciona

1

Estou tentando configurar a autenticação básica em uma subpasta com nginx.

location ^~ /Docs/ {
   auth_basic            "Restricted Area";
   auth_basic_user_file  /var/www/Docs/.htpasswd; //also tried the path in quotes
}

Eu tentei vários métodos para gerar uma senha (por exemplo, htpasswd do apache), mas não consigo fazer login em / Docs com o nome de usuário e a senha especificados em .htpasswd. Eu vejo a caixa de diálogo de autenticação com 'Restricted Area', mas a senha não é aceita.

Eu tentei os métodos aqui :

    
por codecowboy 15.04.2014 / 17:05

2 respostas

1

Acontece que isso foi causado por um proxy de cache do Squid que não estava passando os cabeçalhos de autenticação corretamente. Isso foi provado executando algo semelhante ao seguinte:

curl -i --user qqq:qqq http://target.server/Docs/dump.php |grep AUTH 

onde dump.php contém <php phpinfo();

No caso do servidor atrás do squid, a saída desse comando estava vazia e eu esperaria ver a menção de _SERVER["HTTP_AUTHORIZATION"]

    
por 22.04.2014 / 18:37
1

Você já tentou usar um caminho de localização absoluta?

location /Docs { auth_basic "Restricted Area"; auth_basic_user_file /var/www/Docs/.htpasswd; }

Se isso o levar adiante, você pode querer (A) mover o arquivo de senha para fora do diretório raiz da web ou (B) proteger o arquivo de senha de ser exibido:

location ~ /\. { deny all; }

E você tem certeza que o arquivo que você criou é legível pelo usuário que o nginx está rodando como?

    
por 16.04.2014 / 15:45

Tags