連載
» 2005年12月13日 00時00分 公開

実用 Apache 2.0運用・管理術(6):Apacheで作るファイルサーバ(WebDAV over SSL編) (2/3)

[鶴長鎮一,@IT]

WebDAV over SSLのインストールと設定

 では、WebDAV over SSLの導入と設定を行います。ここで一気にLDAPまで導入しないのは、うまく動作しなかった場合に問題を切り分けやすくするためです。

 ちなみに、@ITのLinux Tipsにも、WebDAV関係の記事が存在します。

 ディストリビューションの多くはApacheを標準で採用しており、そのほとんどがHTTPSまで使用できるようになっています。本記事ではFedora Core 4(以下FC4)を前提に解説しますが、ほかのディストリビューションでも大差はありません。ソースからインストールする場合については、「Appendix:ソースからのインストール」を参照してください。

 まずインストールされているモジュールを確認します。必要なモジュールは、

  • mod_dav.so
  • mod_dav_fs.so
  • mod_ssl.so

です。これらはApache本体のパッケージとは別にインストールする必要があります。FC4の場合、WebDAVに必要なmod_dav.soとmod_dav_fs.soはApache本体のパッケージに付随していますが、HTTPSに必要なmod_ssl.soとその設定ファイルは別途インストールする必要があります。

# rpm -qa | grep mod_ssl
mod_ssl-2.0.54-10.2
mod_ssl.soのインストール確認(FC4の場合)

 インストールされていない場合は、yumコマンドでオンラインインストールします。

# yum install mod_ssl

 次に、公開するディレクトリを作成します。ここでは「/var/www/webdav」をWebDAV用に利用することにします。また、WebDAVは読み込み権限だけでなく、書き込み権限も必要です。ディレクトリの作成後、OwnerとGroupの変更を忘れずに実行しましよう。Owner/Groupは、httpd.confで指定されているApacheデーモンのものを指定します。

User apache
Group apache
httpd.conf
# mkdir /var/www/webdav
# chown apache.apache /var/www/webdav

 公開ディレクトリを作成したら、httpd.confの設定を行います。httpd.confの場所については、第1回を参照してください。

#モジュールの読み込み
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
 
#ロックファイルのための設定
<IfModule mod_dav_fs.c>
    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb
</IfModule>
 
#for WebDAV
Alias   /webdav    "/var/www/webdav" ←URLは「https://サーバ/webdav」
<Location /webdav>
        DAV on
        SSLRequireSSL ←SSLの有効化
        AuthType        Basic ←BASIC認証
        AuthName        "WebDAV Server"
        AuthUserFile    "/etc/httpd/.htpasswd" ←認証ファイルの指定
        Require valid-user ←AuthUserFileで指定したファイルに登録されている全ユーザー
</Location>
WebDAV+SSLのためのhttpd.confの設定

 上のサンプルでは、mod_sslの読み込みなどSSLに関係した設定を行っていないように見えますが、ディストリビューション提供のmod_sslをインストールした場合、SSL関係の設定は/etc/httpd/conf.d/ssl.confで行います。そのため、「SSLRequireSSL」の1行で「WebDAV over SSL」が可能となります。RPMなどのパッケージを使わずソースからインストールした場合は、「Appendix:ソースからのインストール」を参考に、サーバ証明書やサーバ用秘密鍵などを用意してssl.confを修正します。

mod_encodingによる文字化け対策

 このままでは、WindowsとLinuxの文字コードの違いから、日本語のファイル/ディレクトリ名で文字化けが起こります。そこで、文字コードの変換を行うmod_encodingをインストールします。mod_encodingは有志により作成されたモジュールで、詳細は「WebDAV Resources JP」(http://webdav.todo.gr.jp/)で確認できます。FC3用のRPMパッケージが存在し、これはFC4でも使用可能です。

# wget http://yum.sera.desuyo.net/3/i386/mod_encoding-20040616-1.fc3.webdavjp.1.i386.rpm
# rpm -ivh mod_encoding-20040616-1.fc3.webdavjp.1.i386.rpm

 mod_encodingをインストールすると、以下のようなの内容の/etc/httpd/conf.d/mod_encoding.confが追加されます。

EncodingEngine        on
 
SetServerEncoding     UTF-8 ←サーバの文字コードはUTF-8のみ対応
 
DefaultClientEncoding UTF-8 CP932 EUCJP-MS ←クライアント側の文字コード
 
AddClientEncoding "Microsoft .* DAV 1.1" ASCII CP932 UTF-8
AddClientEncoding "Microsoft .* DAV" UTF-8 CP932
AddClientEncoding "(Microsoft .* DAV $)" UTF-8 CP932
AddClientEncoding "(Microsoft .* DAV 1.1)" CP932 UTF-8
AddClientEncoding "Microsoft-WebDAV*" UTF-8 CP932
AddClientEncoding "RMA/*" CP932
AddClientEncoding "xdwin9x/" CP932
AddClientEncoding "cadaver/" UTF-8 EUCJP-MS
AddClientEncoding "Mozilla/" EUCJP-MS
/etc/httpd/conf.d/mod_encoding.conf

 DefaultClientEncodingには、自動判定を行うJA-AUTO-SJIS-MSも用意されていますが、上での設定では自動判定を行わずCP932を使用するようにしています。CP932はシフトJIS(Shift_JIS)のMicrosoft拡張といわれるもので、EUCJP-MSはMicrosoft拡張を反映したEUC対応のエンコードです。そのため「?」や「?」などの機種依存文字も正しく各文字コードにマッピングされます。

htpasswdを使ったBASIC認証

 ここでは暫定的に、htpasswdを使ったBASIC認証を利用します。以下の要領で/etc/httpd/.htpasswdを作成します。Apacheデーモンのユーザー権限で読み込みできる必要があります。

# htpasswd -c /etc/httpd/.htpasswd ユーザー名
New password: ←パスワードの入力
Re-type new password: ←再度パスワードの入力
Adding password for user ユーザー名

Apacheの再起動と確認

 ここまでの設定が終わったら、

# apachectl configtest

を実行してhttpd.confの文法チェックを行っておきましょう。

 httpd.confの確認が終わったら、Apacheを再起動します。

# apachectl restart
apachectlコマンドを使用したApacheの再起動

 Apacheを再起動して設定を反映させたら、次は動作確認です。先に紹介したLinux Tipsでは、SSLを用いないWebDAVの確認方法が解説されています。WebDAV over SSLの場合も基本的には同じであるため、ここでは注意点に簡単に触れるだけにとどめます。

  • GNOME(Linux)でWebDAV over SSLにアクセス

 「サーバへ接続」ダイアログボックスを開き、画面1のように「サービスの種類」で「セキュア WebDAV(HTTPS)」を選択し、「ポート番号」に「443」を入力します。

画面1 GNOMEの「サーバへ接続」ダイアログボックス 画面1 GNOMEの「サーバへ接続」ダイアログボックス
  • WindowsでWebDAV over SSLにアクセス

 「マイ ネットワーク」の「ネットワーク プレースの追加」アイコンをダブルクリックして「ネットワーク プレースの追加ウィザード」(画面2)を起動し、アドレス指定の際に「https」を使用します。

画面2 Windowsの「ネットワーク プレースの追加ウィザード」(画像をクリックすると拡大します) 画面2 Windowsの「ネットワーク プレースの追加ウィザード」(画像をクリックすると拡大します)

 機種依存文字を含む日本語を名前に使っているファイル/ディレクトリのアップロード/ダウンロードを試し、動作を確認します。

 なお、ファイルやディレクトリは名前がUTF-8に変換されて/var/www/webdav下に作成されます。lsやrmなど、サーバ上のシェルでもそのまま操作できます。


 次回は、今回構築した環境にLDAP認証を組み込んでアクセス権を設定する方法を解説します。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。