使用.htpasswd进行http摘要认证

时间:2013-01-21 17:27:24

标签: apache http-authentication

我正在使用Windows,现在我使用以下.htaccess文件进行Http Basic身份验证:

AuthName "Restricted Area" 
AuthType Basic
AuthUserFile D:\\some\\windows\\path/.htpasswd 
require valid-user

并关注用户“test”的.htpasswd文件,密码为“test”(使用http://www.htaccesstools.com/htpasswd-generator-windows/创建):

test:$apr1$EUhLJ8Ye$LpBIbzDcBXY.80pH53oN2/

这很有效,我可以输入正确的用户名和密码,然后获得访问权限。

但由于我不使用SSL,我想使用摘要式身份验证(以避免以明文形式向服务器发送密码)。我将行AuthType Basic更改为AuthType Digest,但它不再有效 - 即使我输入正确的用户并通过我也无法获取访问权限。

可能我应该使用不同的算法在.htpasswd中加密/哈希密码,但我找不到...

1 个答案:

答案 0 :(得分:2)

如果要使用摘要式身份验证,则必须创建新的密码文件。那些用于摘要身份验证的格式将与用于基本身份验证的格式略有不同。通常,apache附带了用于执行此操作的工具。

注意命令行程序“htpasswd.exe”和“htdigest.exe”。您需要使用第二个为摘要身份验证生成密码文件。像这样使用它:

  

c:\ path \ to \ htdigest.exe -c c:\ some \ windows \ path.htpasswd_digest realm username

第一次发出命令时,您只需要“-c”,如果只将新用户添加到现有文件,则类似:

  

c:\ path \ to \ htdigest.exe c:\ some \ windows \ path.htpasswd_digest realm another_username

“realm”应与您在AuthName的apache配置中使用的值相同。

哦,显然,不要忘记在apache配置中更新AuthUserFile ......