webdavサーバの設定

Dropboxやらbox.netやらと、使い勝手のいいクラウドストレージが多く出てきています。
非同期型だと、ローカルと変わらないアクセス感があるのが魅力。自分も使ってます。

しかし、余所様のサーバに置きたくないファイルってのもありまして。。。

OSに依存しなくて、クライアントアプリを準備しなくてもセッションが張れるサービス、ということで、
WebDAVサーバを準備してみる。

apacheの準備

ベース環境はdebian squeeze。apache2にdav系モジュールは取り込まれているので、libapache2-mod-encodingを追加インストールする。
通信経路は暗号化したいので、SSLの鍵とかも準備。
dav, dav_fs, dav_lock, encoding の各モジュールを有効化して、apacheを再起動。

サイトの設定

仮想サーバを新規作成する。ディレクティブを編集して、いつも通りに公開した後、
davを有効化するとわかりやすいかと。

webdav.example.local:443 の設定内容

DocumentRoot /home/hoge/html_webdav
ServerName webdav.example.local

ErrorLog /home/hoge/log/dav.error.log
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn

CustomLog /home/hoge/log/dav.access.log combined

<Directory "/home/hoge/html_webdav">
  allow from all
  Options +Indexes
  DAV on           # dav 有効化
</Directory>
DAVLockDB  /home/hoge/lock/DAV_lock        # lockファイル


# SSL有効化
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
SSLEngine on

以上を設定して適用。

MacOSから、Finderの[移動]メニューを開いて、「サーバに接続」で [https://webdav.example.local/]を開いて、ファイルの上げ下げ・・・OK

とりあえず、BASIC認証をかけて出来上がり。
外のサーバに設定するのもいいけど、中のファイルサーバに仕込んで、ルータのDMZ設定とかしてしまえば、クラウドに置きたくないファイルも、外から見られますな。

追記:その後の運用で

ハマりやすいと思ったOS X がさっくり行ったので、大丈夫かな、と思っていたのですが、他で問題発生。

  • Windowsで、SSL鍵がオレオレ証明書なのを怒られる。
    鍵が不正と言われて、ネットワークプレースとしてマウントできない。。。
  • xubuntuからGigolo経由で接続すると、403になる。

どっちも要調査。とりあえず、windowsはCarotDAVでお茶を濁しておく。