Apache 使用.htpasswd进行http摘要身份验证
我正在windows上工作,目前我使用以下.htaccess文件进行Http基本身份验证:Apache 使用.htpasswd进行http摘要身份验证,apache,http-authentication,Apache,Http Authentication,我正在windows上工作,目前我使用以下.htaccess文件进行Http基本身份验证: AuthName "Restricted Area" AuthType Basic AuthUserFile D:\\some\\windows\\path/.htpasswd require valid-user 以及用户“test”的以下.htpasswd文件,密码为“test”(使用创建): 这样,我就可以输入正确的用户名和密码,并获得访问权限 但由于我没有使用SSL,所以我希望使用摘要身份验
AuthName "Restricted Area"
AuthType Basic
AuthUserFile D:\\some\\windows\\path/.htpasswd
require valid-user
以及用户“test”的以下.htpasswd文件,密码为“test”(使用创建):
这样,我就可以输入正确的用户名和密码,并获得访问权限
但由于我没有使用SSL,所以我希望使用摘要身份验证(以避免将明文密码发送到服务器)。我将行AuthType Basic
更改为AuthType Digest
,但它不再工作了-即使我键入了正确的用户并通过了,我也无法获得访问权限
可能我应该使用不同的算法在.htpasswd中加密/散列密码,但我找不到它…如果要使用摘要身份验证,则必须创建新的密码文件。摘要auth的格式与基本auth的格式略有不同。通常情况下,apache附带了用于执行此操作的工具 注意命令行程序“htpasswd.exe”和“htdigest.exe”。您需要使用第二个为摘要身份验证生成密码文件。像这样使用它: c:\path\to\htdigest.exe-c:\some\windows\path.htpasswd\u digest域用户名 第一次发出命令时只需要“-c”,如果只向现有文件添加新用户,则如下所示: c:\path\to\htdigest.exe c:\some\windows\path.htpasswd\u摘要域另一个\u用户名 “realm”应该与您在apache配置中为AuthName使用的值相同 哦,显然,别忘了在apache配置中更新AuthUserFile
test:$apr1$EUhLJ8Ye$LpBIbzDcBXY.80pH53oN2/