意味不明なタイトルです。適切なタイトル名が思いつかんかった。
ネット上に個人的なフォルダを持ちたい場合は、無料のサービスがいろいろありますね。実際、僕もマイクロソフトのSkyDriveサービスのアカウントを取得してファイルの置き場にしています。25GBもあるのでまぁ容量的な問題はないのですが、いかんせん使い勝手が悪い。転送速度が遅い。他の無料のサービスもそうなんですが、便利なことは便利なんですが、細かいところで少なからず不満があります。
で、今回、ちょっとWindows7の挙動が掴めず、ちょっとハマったので、その備忘録です。
ちょい、長めの記事なので・・・
まぁ、要はLAN内における、ネットワークフォルダのようなものを、WAN(インターネット)にも設置したい、ということです。幸い、フォルダの設置場所は、VPSサーバーで確保しているので問題なし。あとは設定のみ。
使うのは、Apache2.2 + WebDAVモジュールです。既にCentOS 5( VPSサーバーのOS)で、Apache2.2 + SSL がすでに稼働している状態を大前提として書いてます。あしからず。
今回の仕様は・・・
- 設置するフォルダは一つ。
- 通信経路上はなんらかの暗号化手段で(SSL)
- なんらかの認証手段を用いて、フォルダの閲覧・読み込み・書き込みは自分だけができるようにする。
- Windows上からは、エクスプローラシェルのフォルダとして普通にアクセスできること。
- iPhoneなどの携帯デバイスでも読み書きできれば・・・。
- 定期的なバックアップ手段は必要ない。
とまぁ、こんな感じでしょうか。
WebDAVとSSLなどの設定自体は特に問題なしで、ブラウザでアクセスすると、まずSSLの警告がでます。使用している証明書は、オレオレ証明書なのが原因ですが、僕しかアクセスしないので問題なし。
で、ここの時点で、一度、「コンピュータ」内で右クリックして、「ネットワーク場所を追加」してみる。つまり、以前のWebフォルダのことだと思います。
ですが・・・、
エラーが出て進めません。。。
考えたあげく・・・思いついたのは・・・、「オレオレ証明書だから、ダメなのか???」 Vista以降、セキュリティー強化が図れたからなのかな???と思いつつ、オレオレ証明書をエクスポートして、コントロールパネルの資格情報マネージャ・証明書マネージャに「信頼されたルート証明機関」へ登録してみたけど・・・やっぱりダメ・・・・。
じゃぁ、しょうがねぇ・・・、もう一つの手段の、「ネットワークドライブの割り当て」でドライブに割り当ててみる。。。エクスプローラからやってみてもいいんだけど・・・エクスプローラのメニューってどうやってだすんだっけ?(笑)
ということで、コマンドプロンプトから・・・net コマンドでやってみる。
>> net use w: https://xxxxxx.yy/webshare
なんだこれ? 普通にできるジャン・・・(笑)
コマンドプロンプトがお嫌いのかたは、エクスプローラから・・・(やっと出し方わかった(^^;;;
さて、あとは・・・自分だけが使えるように、認証設定です。
認証手段は思いついただけで二つ。
- Apacheサーバーのベーシック認証 もしくは ダイジェスト認証
- クライアント証明書を発行して、クライアント(Windows)に登録する
SSLで通信経路は暗号化されているので、Apacheサーバーのベーシック認証でも良さそうなんですが・・・プレーンテキストなパスワードを流すのはちょっと・・・というわけで、ダイジェスト認証を・・・といきたいところですが・・・、いちいちユーザー名とパスワードを入れるのも面倒だ。
指紋認証やおサイフケータイのICカードでの認証を普段から使っていると、ユーザー名とパスワードを打ち込むという古いスタイル?がもう「めんどくせーーーー」っていうレベルになってきています(ーー;;;
というわけで?、クライアント証明書(オレオレ)を作成してWindowsに登録することで、パスワード認証を回避しました。
クライアント証明書をクライアントPCに登録せずに、フツーにブラウザで、アクセスしても・・・
のように、エラーでアクセスできません。
クライアント証明書を使った認証の設定は特に難しくなく、Apache2.2サーバー側で必要な設定は、↓のような感じです。クライアント証明書の作り方や、そもそもSSLサーバーの立て方は、ググればちゃんとした解説があるので、そっちを参考に。
<Location /webshare> DAV on # SSL(https)必須 SSLRequireSSL #クライアント証明書を使った認証の場合 SSLVerifyClient require SSLVerifyDepth 10 #ダイジェスト認証の場合 #AuthType Digest #AuthName "File Share over WebDAV" #AuthUserFile /home/webshare/.htdigest #Require valid-user </Location>
クライアント証明書を証明書マネージャでインポート(登録先は自動を選択)してやり、ネットワークドライブを割り当ててやると・・・・証明書の選択というダイアログが出ますので、登録したものを選択します。
・・・これでオール・オッケーーーー!と思いきや・・・、
なぜか、IE9(ベータ版)でアクセスすると・・・・エラーになります・・・。なんでだろ?
それと・・・「ネットワークの場所を追加する」では、なぜかエラーですすめず。。。
検索してみたけど・・・原因が分からん・・・ネットワークドライブはフツーに作れるのに・・・。よく分からん。
【おまけ・・・】
作成したそのフォルダにファイルをコピーしたけど・・・今度はサーバー側で書き込み権限の設定がおかしくて書き込めず・・・(T-T)
なんで?・・・と思ったら・・・ davロックデータベース?のディレクトリ(/var/lib/dav)の所有者・グループが、apacheデーモンのユーザー・グループと違っていた・・・おはずかし・・・