[英]nginx and auth_basic
我正在嘗試在 Ubuntu Jaunty 中使用 nginx 進行基本身份驗證。 在 nginx.conf 中,我在服務器上下文下添加了這兩行:
server {
...
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
...
}
然后我 apt-get'ed apache2-utils 來獲取 htpasswd,我用它來創建 htpasswd 文件:
htpasswd -d -c /etc/nginx/.htpasswd joe
當我嘗試訪問該站點時,身份驗證對話框按預期出現,但是當我輸入用戶名和密碼時,它只是刷新了對話框。 它似乎不喜歡我提供的密碼。 我嘗試使用和不使用 -d 選項運行 htpasswd,但仍然沒有運氣。 它拒絕進行身份驗證。 任何想法我做錯了什么?
任何幫助,將不勝感激。
我要檢查的事情:
舊線程,但沒有答案,並在谷歌上很好地引用。
如果您收到此錯誤並嘗試了其他建議,請檢查.htpasswd文件的父文件夾的權限:nginx用戶(默認情況下為www-data)應具有讀取和執行權限(這為我修復了它)。
另一個陷阱我遇到了bash。 我沒有通過提示輸入密碼,而是使用htpasswd
的-b
選項在線輸入密碼。
$ htpasswd -nb admin test123$secure
我無法理解為什么我一直遇到密碼不匹配錯誤,嘗試不同的加密算法。 我用curl驗證它有效:
$ curl -u admin:test123$secure https://example.com
最后,問題通過echo
揭示出來
$ echo test123$secure
test123
我犯了一個錯誤,在bash中使用了一個dolar符號($) ,它被解釋為一個空變量,從而省略了其他所有內容。 這可以通過刪除-b
選項並僅使用提示輸入密碼來避免。
nginx 將 401 響應識別為注銷,確保您的站點沒有返回 401 並再次重定向,它將陷入無限登錄循環,登錄 -> 401 -> 注銷 -> 重定向到同一頁面 -> 重復
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.