Windows 7でWebDAV(SSL)をネットワークドライブとしてマウントするまで
Windows 7でWebDAVをマウントするための要件が厳しくてハマったのでメモ。
Windows 7でWebDAVをマウントするための要件
- WebClientサービスが立ち上がっていること
- 接続先がHTTPSで通信できること
- (おそらく)証明書がインストールされてなければならない
- ApacheでWebDAVを公開する場合は、ServerNameを証明書のCN(=Common Name)と同じにするか、ServerNameの設定をコメントアウトする
- これをしないと証明書がインストールされていても、ネットワークドライブネットワークドライブ割り当て時のWindowsログオン認証ダイアログでログインできない
- CNが一致していないとApacheが警告ログを吐くので、一致させた方が精神衛生上良いかも
- 3、4の要件を達成させるため、IPアドレスのみで接続可能ではなく、ドメインでアクセスできるサーバにWebDAV環境を構築する必要がある
手順
1. Apache+SSL環境を構築
Apache+SSL環境を構築する | brokendish
基本は上記の記事の通り。
- ただ(少なくとも私の環境のDebianの場合は)make-ssl-certコマンドを実行した時に証明書のCN(=Common Name)を入れるダイアログが出てくるので、そこに公開するサーバのドメイン名を正確に入力すること。
- このCNとApacheのServerNameの設定が一致しないとネットワークドライブの割り当て時に(IDとパスワードが合っていても)ログインできない
- また、ApacheのServerNameの設定は上記記事には書いてないので追加する。
- クライアントにインストールする証明書を作成する手順があるが、後述する記事の通り、証明書はブラウザからインストール可能なので飛ばして構わない。
その他TIPS
- Windowsログオン認証ダイアログで保存されたパスワードの一覧表示/削除等をするには「rundll32 keymgr.dll KRShowKeyMgr」
- インストールした証明書の一覧表示/削除等ができる証明書マネージャを起動するには「certmgr.msc」
- レジストリの「\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\ServerNotFoundCacheLifeTimeInSec」を0にするとネットワークドライブ割り当て時に失敗したホストのneg-cacheを無効にできる
- WebClientサービスを再起動させればネットワークドライブの割り当てで即失敗する(=neg-cacheが有効な状態)のは直る
- Vistaでは(Vistaから?)Windows 7と同じくセキュリティまわりが強化・変更されていて、かつVistaのバグのせいでまともにWebDAVにネットワークドライブを割り当てて使えないらしい
参考URL
- Apache+SSL環境を構築する | brokendish
- WebDAV+SSLを構築する | brokendish
- Windows7でWebDAVを使う : 元うなぎ屋
- 基本要件とHTTPでもマウントできるようにする場合のレジストリの編集項目について (クライアント側)
- 【オレオレ証明書】Windows7での自作WebDAVサーバーとの接続【SSL】 | くずのは探偵事務所
- 証明書のインストールについて (クライアント側)
- ServerNameの設定ミスによるSSLエラー – No:32 – Linuxで自宅サーバ構築(新森からの雑記)
- ServerNameが証明書のCNとマッチしていなかった場合に吐かれるApacheのログの解決法について (サーバ側)
- Windowsログオン認証ダイアログのパスワード保存について | Windows系OSのQ&A【OKWave】
- 「rundll32 keymgr.dll KRShowKeyMgr」について
- オレオレ証明書に対してWindows7標準のWebDAVクライアントを使う | 時の回廊
- 証明書のCNはサーバのドメイン名(正確にはServerName)と同じでなければならない事について