2013-01-21 45 views
0

驗證我的工作窗口,併爲現在我有HTTP基本身份驗證與下面的.htaccess文件:HTTP摘要與htpasswd的

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

,並按照用戶「測試」 htpasswd文件密碼是「試驗」 (創建使用http://www.htaccesstools.com/htpasswd-generator-windows/):

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

這工作,我能輸入正確的用戶名和密碼,我獲得。

但是由於我沒有使用SSL,我想使用摘要式身份驗證(以避免以純文本向服務器發送密碼)。我將AuthType Basic行更改爲AuthType Digest,但它不再工作 - 即使我正在輸入正確的用戶並且無法訪問。

也許我應該加密/ htpasswd的在哈希密碼使用不同的算法,但我不能找到它...

回答

2

如果你想使用摘要身份驗證,就必須創建新密碼文件。那些用於摘要身份驗證的格式與用於基本身份驗證的格式略有不同。通常情況下,Apache提供了用於執行此操作的工具。

注意命令行程序「htpasswd.exe」和「htdigest.exe」。您需要使用第二個用於生成摘要身份驗證的密碼文件。使用這樣的:

C:\路徑\到\ htdigest.exe -cc:\一些\ WINDOWS \ path.htpasswd_digest境界用戶名

您只需要 「-c」 的你第一次發出的命令,如果你只添加新用戶到現有文件,它就像:

C:\路徑\爲\ htdigest.exe C:\一些\ WINDOWS \ path.htpasswd_digest境界another_username

「realm」應該與您在AuthName的apache配置中使用的值相同。

哦,顯然,別忘了更新你的apache配置中的AuthUserFile ...