Apache 2.4"..身份验证失败..:密码不匹配"

use*_*179 7 apache authentication .htaccess .htpasswd

我在Windows Server 2008 R2中运行Apache 2.4.我试图密码保护一个子目录,并成功在Apache 2.0中这样做.升级后,我接受了Apache的建议,并尝试将身份验证配置放在httpd.config中.我允许读取密码文件,一切看起来都是有序的,但是当我测试它时,我收到以下错误:

[Mon Apr 01 19:58:36.438476 2013] [auth_basic:error] [pid 3984:tid 788] [client xxx.yyy.254.2:49253] AH01617:用户主服务器:"/restricted/file.zip"的身份验证失败:密码有误

但是,我知道我正在发送正确的密码.请参阅下面的配置,任何评论都有帮助.

<Directory "C:/www/mydir/restricted">
    #AllowOverride AuthConfig
    #Order allow,deny
    #Allow from all
    AuthType Basic
    AuthName Restricted
    AuthUserFile "C:/www/mydir/passwords/pass"
    Require valid-user
</Directory>  
<Directory "C:/www/mydir">
    Require all granted
</Directory>  
<VirtualHost *:80>
    ServerAdmin admin@.com
    DocumentRoot "C:/www/mydir"
    ServerName "fakeurl.com"
    ErrorLog "C:/www/mydir/logs/error.log"
    CustomLog "C:/www/mydir/logs/accesslog/access.log" common
</VirtualHost>  
<VirtualHost *:80>
    ServerAdmin admin@.com
    DocumentRoot "C:/www/mydir"
    ServerName "www.fakeurl.com"
    ErrorLog "C:/www/mydir/logs/error.log"
    CustomLog "C:/www/mydir/logs/accesslog/access.log" common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Edd*_*ddy 22

我刚才有同样的问题,在最后一小时让我疯了.我可以确认史蒂夫建议在命令行输入密码是有效的 - 所以在我的情况下,"htpasswd -b密码文件用户密码"就可以了.

是Apache的相关错误报告.

  • @NickM我同意,评论会更合适.不幸的是,我当时没有足够的功劳在StackOverflow中发表评论,并认为添加对我有用的实际命令和bug报告的链接会很好. (5认同)
  • 与其复制答案,不如简单地对史蒂夫的答案进行投票或评论。 (2认同)

小智 14

你用'htpasswd'创建了密码吗?

httpd-2.4.4中的htpasswd被破坏了(https://issues.apache.org/bugzilla/show_bug.cgi?id=54735).

据我了解,问题是httpd-2.4.4中的htpasswd特有的,只有在您手动输入密码时才会出现,因此您可以通过执行以下操作之一来解决此问题:

  • 在命令行上提供密码(例如"htpasswd -b .htpasswd用户密码");
  • 使用httpd-2.4.3中的htpasswd版本;
  • 使用摘要式身份验证而不是基本身份验证(htdigest不受影响);
  • 等到httpd-2.4.5发布;
  • 在bug报告中应用补丁(似乎有效)并从源代码重建htpasswd.

  • 谢谢 - 这让我疯了一个小时.在这样一个成熟的应用程序中,这样简单的回归是不可原谅的.:-( (3认同)