2013-04-01 11 views
7

Ich verwende Apache 2.4 in Windows Server 2008 R2. Ich versuche, ein Unterverzeichnis mit einem Passwort zu schützen und tat dies erfolgreich in Apache 2.0. Nach dem Upgrade habe ich den Rat von Apache genommen und versuche die Authentifizierungskonfiguration in httpd.config zu speichern. Ich erlaube das Lesen der Passwort-Datei und alles scheint in Ordnung zu sein, aber wenn ich es teste, erhalte ich den folgenden Fehler:Apache 2.4 "..Authentifizierungsfehler ..: Password Mismatch"

[Mon Apr 01 19: 58: 36.438476 2013] [auth_basic: error] [pid 3984: tid 788] [client xxx.yyy.254.2: 49253] AH01617: user master: Authentifizierungsfehler für "/restricted/file.zip": Password Mismatch

Ich weiß jedoch, dass ich das richtige Passwort sende. Siehe unten für meine Konfiguration, Kommentare sind hilfreich.

<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 [email protected] 
    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 [email protected] 
    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> 

Antwort

22

Ich hatte gerade das gleiche Problem, war mich für die letzte Stunde verrückt. Ich kann bestätigen, dass Steve's Vorschlag, das Passwort in der Befehlszeile einzugeben, funktioniert - in meinem Fall hat "htpasswd -b passwordfile user password" den Trick gemacht.

Here ist der relevante Fehlerbericht bei Apache.

+1

Anstatt eine Antwort zu duplizieren wäre besser gewesen, Steve einfach zu wählen oder zu kommentieren. –

+5

@NickM Ich stimme zu, ein Kommentar wäre passender gewesen. Leider hatte ich nicht genug Kredit zu der Zeit, um in StackOverflow zu kommentieren und fühlte, dass es gut wäre, das hinzuzufügen aktueller Befehl, der für mich funktionierte und ein Link zum Fehlerbericht. – Eddy

14

Haben Sie Ihr Passwort mit 'htpasswd' erstellt?

htpasswd in httpd-2.4.4 ist gebrochen (https://issues.apache.org/bugzilla/show_bug.cgi?id=54735).

Wie ich es verstehe, ist das Problem spezifisch in httpd-2.4.4 htpasswd und tritt nur auf, wenn Sie das Kennwort manuell eingeben, so können Sie, indem Sie einen der um das Problem zu umgehen:

  • Geben Sie das Passwort in der Befehlszeile ein (zB "htpasswd -b .htpasswd user password");
  • verwenden Sie die Version von htpasswd aus httpd-2.4.3;
  • Digest-Authentifizierung anstelle der Standardauthentifizierung verwenden (htdigest ist nicht betroffen);
  • warten bis httpd-2.4.5 freigegeben wird;
  • wenden Sie den Patch im Fehlerbericht an (was zu funktionieren scheint) und bauen Sie htpasswd aus der Quelle neu auf.
+3

Danke - das hat mich eine Stunde lang verrückt gemacht. Einfache Regressionen wie diese in solch einer ausgereiften Anwendung sind einfach unentschuldbar. :-( –

+0

Es dauerte so lange, darüber nachzudenken, dies als ein mögliches Problem zu googeln, da meine Gedanken die gleiche wie @AndyLeeRobinson waren, dass "Einfache Regressionen wie diese in solch einer reifen Anwendung einfach unentschuldbar sind" –