with restricted protect password htpasswd content change auth_basic nginx basic-authentication .htpasswd

restricted - nginx y auth_basic



nginx login (3)

Cosas que me gustaría comprobar:

  • Permisos en `/ etc / nginx / .htpasswd` - ¿Puede la cuenta que ejecuta nginx leer el archivo? Puedes intentar, temporalmente, usar `chmod 644` para asegurarte de que todos puedan leerlo. Si eso funciona, entonces puede ordenar una combinación apropiada de configuraciones `chown` y` chmod` para que nginx y usted / root puedan leerla pero otros usuarios no puedan (por seguridad).
  • Asegúrese de que `htpasswd` esté generando el hash en la forma correcta; por lo general se trata de 13 caracteres alfanuméricos (por ejemplo, `username: wu.miGq / e3nro`). El comando PUEDE generar hashes MD5 también, que se verían más como `username: $ apr1 $ hzB2K ... $ b87zlCYMKufOxn9ol5QV4 /` estos no funcionan con nginx.
  • Busque aumentar la salida de depuración de nginx y verifique las anotaciones de errores para obtener pistas.

Estoy tratando de obtener una autenticación básica trabajando con nginx en Ubuntu Jaunty. En nginx.conf, agregué estas dos líneas en el contexto del servidor:

server { ... auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd; ... }

Luego, obtuve apache2-utils para obtener htpasswd, que usé para crear el archivo htpasswd:

htpasswd -d -c /etc/nginx/.htpasswd joe

Cuando intento acceder al sitio, el cuadro de diálogo de autenticación aparece como se esperaba, pero cuando ingresé el nombre de usuario y la contraseña, se actualizó el cuadro de diálogo. Parece que no me gusta la contraseña que le proporciono. Intenté ejecutar htpasswd con y sin la opción -d, pero aún así no tuve suerte. Se negó a autenticar. ¿Alguna idea de lo que estoy haciendo mal?

Cualquier ayuda sería apreciada.


Hilo antiguo, pero sin respuesta, y bien referenciado en Google.

Si recibe este error y ha intentado las otras sugerencias, verifique los permisos de la carpeta principal de su archivo .htpasswd: el usuario nginx (www-data por defecto) debería haber leído y ejecutado los permisos (esto lo solucionó para mí).


Otro gotcha que me encontré en bash. En lugar de ingresar mi contraseña a través del indicador, utilicé la opción -b de htpasswd para ingresar la contraseña en línea.

$ htpasswd -nb admin test123$secure

No pude entender por qué seguí ejecutando errores de desajuste de contraseña, probando diferentes algoritmos de cifrado. Verifiqué con rizo que funcionaba:

$ curl -u admin:test123$secure https://example.com

Finalmente, el problema se reveló a través del echo

$ echo test123$secure test123

Cometí el error de usar un signo dolar ($) en bash que se interpretó como una variable vacía, omitiendo así todo lo demás. Esto se puede evitar eliminando la opción -b y simplemente usando el indicador para ingresar la contraseña.