KP.*_*KP. 18 nginx basic-authentication .htpasswd
我试图在Ubuntu Jaunty中使用nginx进行基本身份验证.在nginx.conf中,我在服务器上下文中添加了这两行:
server {
...
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
...
}
Run Code Online (Sandbox Code Playgroud)
然后我apt-get'ed apache2-utils获取htpasswd,我用它来创建htpasswd文件:
htpasswd -d -c /etc/nginx/.htpasswd joe
Run Code Online (Sandbox Code Playgroud)
当我尝试访问该站点时,验证对话框按预期出现,但是当我输入用户名和密码时,它只刷新了对话框.它似乎不喜欢我提供它的密码.我尝试使用和不使用-d选项运行htpasswd,但仍然没有运气.它拒绝进行身份验证.我有什么想法我做错了吗?
任何帮助,将不胜感激.
Nic*_*ick 26
我要检查的事情:
我在 bash 上遇到的另一个问题。我没有通过提示输入我的密码,而是使用了在线输入密码的-b
选项htpasswd
。
$ htpasswd -nb admin test123$secure
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我不断遇到密码不匹配错误,尝试不同的加密算法。我用 curl 验证它有效:
$ curl -u admin:test123$secure https://example.com
Run Code Online (Sandbox Code Playgroud)
最后,问题通过 echo
$ echo test123$secure
test123
Run Code Online (Sandbox Code Playgroud)
我犯了在 bash中使用美元符号 ($)的错误,该符号被解释为空变量,因此忽略了其他所有内容。这可以通过删除-b
选项并仅使用提示输入密码来避免。
旧线程,但没有答案,并在谷歌上很好地引用.
如果您收到此错误并尝试了其他建议,请检查.htpasswd文件的父文件夹的权限:nginx用户(默认情况下为www-data)应具有读取和执行权限(这为我修复了它).
归档时间: |
|
查看次数: |
39068 次 |
最近记录: |