WebDAV & WindowsXP

WebDAV (http で動作するネットワークドライブ) 環境構築の顛末。」


FreeBSDApache 2.2 で WebDAV 環境を構築したが、クライアントとなる WindowsXP SP2 は、Basic 認証の際にサーバー名とユーザー名をサーバーへで認証しようとする為、認証で失敗する。その対策として、ネット上で見つけた対策は次の通り。

  1. サーバー側で、サーバー名 + ユーザー名のアカウントを作っておく。
  2. URL の末尾に '?' を付与する。
  3. WindowsXP の WebClient サービスを切る。
  4. mod_encoding を入れる。
  5. サーバー側で SSL を使う設定にする。

対策 1 は私の環境ではうまくいかなかった。サーバー名とユーザー名の区切り文字である '¥' マークが、UTF-8 ではバックスラッシュと同一ではないためにうまくいかなかったのではないかと思っているが、もともとこの対策に乗り気がしなかったため、深く追求はしていない。

対策 2 は最初はうまく行っていたのだが、他の解決方法を模索する中で設定変更を繰り返しているうちに、うまくいかなくなってしまった。随時更新される WindowsXP のパッチが原因ではないかと推測しているが、詳細な原因追求はしていない。

対策 3 はうまく行く。ネットワークドライブを作ってしまえば、その後は WebClient が立ち上がっていても、立ち上がっていなくても、問題なく WebDAV にアクセスできるので、ネットワークドライブを作るまでの間、一時的に WebClient を落としておくだけでいいようだ。ただ、ユーザー側に負担を強いることになり、コンピュータに詳しくない人には難易度が高いものとなってしまうし、Basic 認証からダイジェスト認証に切り替えると、認証できなくなるので、引き続いて他の方法の検討を進めることにした。

できれば、対策 4 の mod_encoding を入れる方法で解決したかったが、Apache2.2 で動かすには、Ports 任せではダメで、手動でコンパイルする必要があった。しかし、残念ながらうちの FreeBSD 環境 (& 私のスキル) ではコンパイルがうまくゆかず、最終的に対策 5 の SSL 環境の構築に手を出さざるを得なかった。もともと、SSL 利用が望ましいとは思っていたものの、環境構築に手間取りそうだったので、他の安易な方法を模索していた訳だが、遠回りした結果、もっとも望ましい形で決着することとなった訳だ。

SSL 上の WebDAV であれば、公式な SSL 証明書を取得していないことを指摘する警告が出るものの、WindowsXP で問題なく認証をクリアする。これで一応の目的は達せられることになる。

なお、MacOS X 10.4.9 環境であれば、HTTP、SSL、Basic 認証、ダイジェスト認証のすべてで、問題なくアクセスできた。