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

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(データ階層構造)は下記構成になっています。
    LDAP_DIT.jpg
  • インストール手順は下記を参考にして下さい。
    [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クライアントをインストールします。
    (ダウンロードファイルを実行するだけです)

設定・動作確認 +

  • CarotDAVを起動して接続設定を行います。ADDボタンからWebDAVを選択します。
    webdav_08.jpg

  • Generalタブの設定を行います。SettingName, URI, Username, Passwordを設定します。
    webdav_09.jpg

  • Encodingタブで文字コードの設定を行います。設定が終わったら「OK」ボタンを押します。
    webdav_10.jpg

  • 「Connect」ボタンを押してサーバに接続します。
    webdav_11.jpg

  • 自己署名証明書なので警告ができますが、Ignoreボタンを押して無視します。
    webdav_12.jpg

  • フォルダやファイルの作成削除を行い動作確認します。
    (日本語ファイル名や機種依存文字も問題なく利用できます)
    webdav_13.jpg

このエントリーをはてなブックマークに追加
Last-modified: 2011-05-22 (日) 12:57:54 (276d)   最終更新のRSS