Apache(SSL) + WebDAV +
はじめに +
WebDAV環境の構築手順です。認証はBasic認証とLDAP認証を紹介します。
尚、WebDAVはWEBサーバ上のファイル/フォルダを読み書き可能にする仕組みです。
非常に便利ですがファイル/フォルダの所有者が全てapache実行ユーザになってしまうため、
細かいアクセス権の設定ができません。
環境 +
- OS
- CentOS 5.6 (2.6.18-238.9.1.el5)
- パッケージ
- httpd-2.2.3-45.el5
- mod_ssl-2.2.3-45.el5
- WebDAV用ディレクトリ
- /var/www/webdav
- WebDAVのURI
apacheのインストール +
apacheのインストール +
- apacheのインストール
# yum install httpd
- apache用のSSLモジュールをインストール
# yum install mod_ssl
apacheの設定 +
httpd.confの編集 +
- apacheの設定ファイル「/etc/httpd/conf/httpd.conf」を編集します。
WebDAVの設定は別途行います。尚、行数はあくまで目安です。# vi /etc/httpd/conf/httpd.conf #44行目 ヘッダ情報にapacheのパージョンなどを含めないよう制限します ServerTokens Prod #265行目 サーバ名を設定します ServerName www.oss-d.net:80 #329行目「/var/www/html」以下のディレクトリでhtaccessを有効にします AllowOverride All #392行目 インデックスファイルの指定 DirectoryIndex index.html index.html.var #524行目 エラーページの設定(サーバのバージョンやホスト名を出力しない) ServerSignature On #748行目 デフォルトの文字コードを指定します AddDefaultCharset UTF-8
ssl.confの編集 +
- apacheのSSL設定ファイル(/etc/httpd/conf.d/ssl.conf)を編集します。
# vi /etc/httpd/conf.d/ssl.conf #112行目 httpsdの使用する公開鍵の場所(基本的にデフォルト) SSLCertificateFile /etc/pki/tls/certs/localhost.crt #119行目 httpsd の使用する秘密鍵の場所(基本的にデフォルト) SSLCertificateKeyFile /etc/pki/tls/private/localhost.key #134行目 中間証明書の場所を指定します。利用するCAによっては設定が必要になります。 # 今回はCAを利用せず、自己証明書を利用するため設定しません。 #SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt #225行目 ログの出力形式 CustomLog logs/ssl_access_log combined
秘密鍵と証明書の作成 +
秘密鍵「localhost.key」と自己署名証明書「localhost.crt」を作成します。
- 自己署名証明書は商用サービスなどの第三者がアクセスする環境で利用しないで下さい。
- 第三者がアクセスする場合は、CAから発行された証明書を利用して下さい。
- カレントディレクトリを変更します。
# cd /etc/pki/tls
- 秘密鍵を生成します。
# openssl genrsa -des3 2048 -rand /var/log/ > private/localhost.key
「Enter PEM pass phrase:」と表示されるので、パスフレーズを入力すると暗号化のための秘密鍵(localhost.key)が生成されます。
- 秘密鍵からパスフレーズを削除します。
「Enter pass phrase for private/localhost.key:」と表示されるので、先ほどのパスフレーズを入力します。# openssl rsa -in private/localhost.key -out private/localhost.key Enter pass phrase for private/localhost.key: writing RSA key
- 生成された秘密鍵を使って自己署名証明書を発行します(Common NameはURLでのホスト名を入力)
# openssl req -new -x509 -key private/localhost.key -out certs/localhost.crt -days 3650 ----- Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []:www.oss-d.net Email Address []:
WebDAVの設定 +
Basic認証を利用する場合 +
WebDAV用ディレクトリの作成 +
- WebDAV用にディレクトリを作成して、所有者をapacheに変更します。
# mkdir /var/www/webdav # chown apache.apache /var/www/webdav
認証設定 +
- apacheの設定ファイル「/etc/httpd/conf/httpd.conf」にWebDAV用の設定を追加します。
# vi /etc/httpd/conf/httpd.conf #551行目 WebDAVのロックファイル設定(デフォルト) <IfModule mod_dav_fs.c> DAVLockDB /var/lib/dav/lockdb </IfModule> # WebDAVの設定 Alias /webdav "/var/www/webdav" <Location /webdav> DAV on SSLRequireSSL AuthType Basic AuthName "WebDAV Server" AuthUserFile "/etc/httpd/.htpasswd" Require valid-user Order deny,allow Deny from all Allow from 192.168.11.0 </Location>
ユーザ登録 +
- hoge1ユーザを登録します。
# htpasswd -c /etc/httpd/.htpasswd hoge1
- ・-c
- パスワードファイルを新規に作成する
- ・-m
- MD5で暗号化する
- ・-s
- SHA1で暗号化する
- ・-D
- ユーザを削除する
LDAP認証を利用する場合 +
OpenLDAP側の設定 +
- DIT(データ階層構造)は下記構成になっています。
- インストール手順は下記を参考にして下さい。
[openldapインストール>OpenLDAP/2.3]
LDAPモジュールのインストール +
- LDAPモジュールをインストールします。
# yum install mod_authz_ldap
WebDAV用ディレクトリの作成 +
- WebDAV用にディレクトリを作成して、所有者をapacheに変更します。
# mkdir /var/www/webdav # chown apache.apache /var/www/webdav
認証設定 +
- apacheの設定ファイル「/etc/httpd/conf/httpd.conf」にWebDAV用の設定を追加します。
# vi /etc/httpd/conf/httpd.conf #551行目 WebDAVのロックファイル設定(デフォルト) <IfModule mod_dav_fs.c> DAVLockDB /var/lib/dav/lockdb </IfModule> ## WebDAVの設定 Alias /webdav "/var/www/webdav" <Location /webdav> DAV on SSLRequireSSL AuthType Basic AuthName "WebDAV Server" AuthBasicProvider ldap AuthLDAPURL ldap://192.168.11.100/ou=Users,dc=oss-d,dc=net?uid Require ldap-attribute objectClass=posixAccount Order deny,allow Deny from all Allow from 192.168.11 </Location>
起動確認 +
自動起動の設定 +
- chkconfigコマンドで自動起動をONにします
# chkconfig httpd on
起動確認 +
- apacheを起動します。
# /etc/init.d/httpd start
- psコマンドでプロセスの確認します。/usr/sbin/httpdがあれば問題ありません。
# ps ax|grep http 1747 ? S 0:00 /usr/sbin/httpd 1900 ? S 0:00 /usr/sbin/httpd 1923 ? Ss 0:00 /usr/sbin/httpd
WebDAVクライアントの設定 +
Windows vistaのWebDAVクライアント不具合があるため、今回は別のWebDAVクライアントを利用します。
インストール +
- WebDAVクライアントをダウンロードします。
http://www.rei.to/carotdav.html
- WebDAVクライアントをインストールします。
(ダウンロードファイルを実行するだけです)
設定・動作確認 +
- CarotDAVを起動して接続設定を行います。ADDボタンからWebDAVを選択します。
- Generalタブの設定を行います。SettingName, URI, Username, Passwordを設定します。
- Encodingタブで文字コードの設定を行います。設定が終わったら「OK」ボタンを押します。
- 「Connect」ボタンを押してサーバに接続します。
- 自己署名証明書なので警告ができますが、Ignoreボタンを押して無視します。
- フォルダやファイルの作成削除を行い動作確認します。
(日本語ファイル名や機種依存文字も問題なく利用できます)






