WebDAV - Authentifizierung wird übersprungen [Apache, SSL, Digest, Win32]

WulfmanGER

Commander
Registriert
Juli 2005
Beiträge
2.226
Hallo zusammen,

ich hab ein kleines Problem mit WebDav unter Apache 2.4.3 @ Win32

Aus irgendeinem Grund bekomme ich die PW-Abfrage nicht hin. Im Webbrowser wird das WebDav-Verzeichnis direkt angezeigt. Wenn ich die WebDav-Adresse in den Windows Explorer eintragen möchte, kommt 2x PW-Abfrage - aber wird nicht akzeptiert (das hatte ich in vorherigen Tests auch schon - da hatte ich keine PW-Schutz und kein SSL drinnen - aber Webdav will wohl zwingend einen und fragt daher einfach nach ... und Verbindung schlägt dann fehl). Ohne SSL ist mir die Digest-Authentifizierung einmal gelungen ...

Hier meine Konfig:
[alle Module geladen die ich laut httpd-dav.conf benötige]
Code:
LoadModule auth_digest_module modules/mod_auth_digest.so 
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
DavLockDB "h:/Server/webserver/apache/lockdb"

<VirtualHost webdav.domain.tld:443>
LogLevel warn

SSLEngine on
SSLCertificateFile "H:/Server/webserver/apache/conf/localhost.crt"
SSLCertificateKeyFile "H:/Server/webserver/apache/conf/localhost.key"

ServerName webdav.domain.tld:443
DocumentRoot H:/Webserver-Daten/webdav/

<Directory "H:/Webserver-Daten/webdav">
Dav on

AuthType Digest
AuthName webdavdir
AuthUserFile "h:/Webserver-Daten/webdav.htpasswd"
AuthDigestProvider file
   <RequireAny>
        Require method GET POST OPTIONS
        Require user test test1 
    </RequireAny>
ForceType text/plain
Options +Indexes
SSLRequireSSL
</Directory>

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[01234]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
BrowserMatch " Konqueror/4" redirect-carefully
</VirtualHost>


in der webdav.htpasswd bin ich mir nicht 100%ig sicher wie das PW drin sein muss. Da unter Win und BASIC-Auth das PW nicht verschlüsselt sein darf, hab ich in der webdav.htpasswd 2 Logins drin
test:webdavdir:verschlüsselt
test1:webdavdir:unverschlüsselt

Aber warum wird im Browser jetzt nicht nach einem Login gefragt? (gespeichert ist der Login nicht ...) ... wenn ich dort die Abfrage hin bekomme, sollte Webdav in den Windows-Explorer auch machbar sein ...

Danke schon mal
Ergänzung ()

Hab es geschafft :) hier die Lösung - falls in paar Jahren mal jemand danach sucht und dann auch eine Antwort findet (nicht so wie ich, der zu div. Themen rundrum nur Fragen und "klappt jetzt" gefunden hat)

Digest (sollte man schon nehmen) verlangt das man eine Domain angibt.

Code:
AuthDigestDomain / https://webdav.domain.tld
Wenn die WebDav-Adresse domain.tld/webdav/ lautet muß das entsprechend angepasst sein:

Code:
AuthDigestDomain /webdav/ https://domain.tld/webdav

System sollte erkannt sein ;)

Auch unter Windows muss das Passwort gecryptet sein - also nicht wie bei Basic wo man das Passwort im Klartext hat.

Der Block (aus dem ersten Post) von 24-27 wird durch
Require valid-user
ersetzt.
Damit kann sich dann nur noch der Einloggen der in der Passwort Datei steht.

Folgende Zeilen sollte man noch in den Directory-Block pappen:

Code:
               <LimitExcept OPTIONS>
                       Require valid-user
               </LimitExcept>
               <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
                       Require user USERNAMESTEHTHIER
               </Limit>
Das LimitExcept ist für Windows ... sonst klappt das einloggen nicht.
Das Limit sind Methoden die ein registrierter User (ich nutze das alleine, daher Vollzugriff) nutzen darf.

Damit wir HTTPS (Verschlüsselung) nutzen können (ja schon sinnvoll), müssen wir ein Zertifikat erstellen. Das ist recht einfach und kostet nichts. Wer es entsprechend signiert haben möchte, darf das gerne gegen Cash machen - aber nötig isses für den Privatbetrieb nicht - Verschlüsselung findet trotzdem statt.

Hier ist beschrieben wie das erstellen geht: http://www.mindfile.org/Computer/SSL-Apache2.2-Windows
(CN sollte die Domain sein - bei mir lief es erst im 2. Anlauf - vielleicht kann ein Profi was dazu schreiben? ;) )

Danach passt man die Konfig entsprechend an - auf die Zertifikatsdateien zeigend. Restart. Fertig

... fast:
Windows 7 vertraut keinen Seiten die vorgeben sicher zu sein, aber dessen Zertifikat selbst erstellt ist. Wir gehen also jetzt per Browser auf die Webseite und sagen erstmal das wir dem Zertifikat vertrauen usw. Kennt man ja von div. HTTPS-Seiten. Anschließend laden wir dieses Zertifkat RUNTER. Im Firefox ist Links neben der URL ein schloss - darauf, Infos, Zertifikat anzeigen, Details -> Exportieren.

Dateiname sollte meine.domain.tld.crt sein. Diese Datei jetzt Doppelklicken und als Ziel wählt ihr dann: Vertrauenswürdige Stammzertifikate.

Jetzt kann man sein Webdav als Laufwerk, Webordner unter Win7+ einfügen. Falls es nicht klappt -> vermutlich ist das Zertifikat falsch erstellt. Ich hab über 2h mit einem falschen Zertifikat rumexperimentiert :(

Hier noch mal die Konfig für den VirtualHost im ganzen. Falls jemand Fragen hat ... oder Verbesserungsvorschläge (pimpen!), her damit ;)


Code:
<VirtualHost *:443>
LogLevel warn

ServerName webdav.domain.tld
DocumentRoot H:/Webserver-Daten/webdav/

SSLEngine on
SSLCertificateFile "H:/Server/webserver/apache/conf/webdav.crt"
SSLCertificateKeyFile "H:/Server/webserver/apache/conf/webdav.key"
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        BrowserMatch ".*MSIE.*" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0

<Directory H:/Webserver-Daten/webdav>
Dav on
DavDepthInfinity on
ForceType text/plain

DirectoryIndex disabled
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
allow from all

## Authentifizierung
	AuthType Digest
	AuthName "webdav"
	AuthDigestDomain / https://webdav.domain.tld
	AuthDigestProvider file
	AuthUserFile "h:/.htpasswd"
	Require valid-user
	
SSLRequireSSL
               <LimitExcept OPTIONS>
                       Require valid-user
               </LimitExcept>
               <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
                       Require user test
               </Limit>
</Directory>

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[01234]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
BrowserMatch " Konqueror/4" redirect-carefully
BrowserMatch "^Microsoft-WebDAV" redirect-carefully

</VirtualHost>
 
Zurück
Oben