*概要 [#a4718d47]
Basic認証ではパスワードが平文で流れるため、盗聴が容易でありセキュリティーに問題がある。そこで、Digest認証を使って暗号化パスワードで認証を行うようにする。
Apache2のモジュールには、mod_digestとmod_auth_digestと2種類ある。mod_digestはWindowsのWebフォルダで認証できないため、mod_auth_digestをインストールする。
*インストール [#gc59e811]
apache2のソースディレクトリに移動する
# cd httpd-2.0.54/modules/aaa/
コンパイル
# /usr/local/apache2/bin/apxs -c -D DEV_RANDOM mod_auth_digest.c
>
-c : コンパイル
-D DEV_RANDOM : 乱数生成に/dev/randomを用いる
インストール
# /usr/local/apache2/bin/apxs -i -a .libs/mod_auth_digest.so
>
-i : mod_auth_digest.soがmodulesディレクトリにコピーされる
-a : httpd.conf にLoadModuleディレクティブを追加
*確認 [#f27c06d2]
modulesディレクトリに追加されているか?
# ls /usr/local/apache2/modules/
httpd.exp mod_auth_digest.so* mod_dav_fs.so* mod_rewrite.so*
httpd.confに追加されているか?
# cat /usr/local/apache2/conf/httpd.conf |grep digest
LoadModule auth_digest_module modules/mod_auth_digest.so
*パスワードファイルの作成 [#ra61d2ec]
# /usr/local/apache2/bin/htdigest -c /usr/local/apache2/conf/.htdigest dav user-name
Adding password for waratte in realm dav.
New password:
Re-type new password:
>
-c:新しいファイルを作成する
〜.htdigest:作成するパスワードファイル
dav:realm名。適当な名前をつける。
user-name:作成するユーザー名
*httpd.confの編集 [#r691f3d8]
# vi /usr/local/apache2/conf/httpd.conf
>
<Location /dav/auth>
DAV On
Options Indexes
AuthType Digest
AuthName "dav"
AuthDigestFile "/usr/local/apache2/conf/.htdigest"
Require valid-user
</Location>
>
AuthType Digest:認証のタイプをDigestにする
AuthName "dav":上で指定したrealm名と同じにする
AuthDigestFile:上で作成したファイルを指定(AuthUserFileではないので注意)
Require valid-user:認証されたユーザは誰でもアクセス可能
*apache2の再起動 [#p7046208]
# /etc/rc.d/init.d/apache2 restart
httpdを停止中: [ OK ]
httpdを起動中: [ OK ]
* コメント [#n23d89c6]
#pcomment(Apache2でDigest認証/コメント)