Apacheを使用したDigest認証

仕事でダイジェスト認証を調査することになったので・・・。

1、Apache2.2.11をインストール
2、設定ファイル(httpd.conf)の変更


1は他のサイトを参照してください。
2の設定ファイルについてちょっとはまったので。

前提としてApacheのインストールディレクトリを

C:\Program Files\Apache Software Foundation\Apache2.2\

とし、ダイジェスト認証を行うためのディレクトリを

C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\test

とします。


httpd.confの

#LoadModule auth_digest_module modules/mod_auth_digest.so

のコメントをはずします。


次に

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

の部分を以下のように変更します。

<Directory "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\test">
    AuthType Digest
    AuthName aaa
    AuthUserFile C:\.htdigest
    Require user secret
</Directory>

ここでApache2.2以前だとAuthDigestFileとなっていたところがAuthUserFileとなっています。
コレのせいで結構時間を奪われた;


次にID、パスワードの設定
コマンドプロンプトを開いて

cd "C:\Program Files\Apache Software Foundation\Apache2.2\bin"

binフォルダまで移動します。

C:\Program Files\Apache Software Foundation\Apache2.2\bin>htdigest -c C:\.htdigest aaa secret

上のコマンドを入力します。
C:\.htdigestはパスワードのダイジェストファイル(httpd.confのAuthUserFile)を指定します。
aaaはhttpd.confのAuthNameの値を。
secretはIDを指定します。

そうすると

Adding password for secret in realm aaa.
New password: ****
Re-type new password: ****

となるのでNew passwordとRe-type new passwordにパスワードを入力してください。

以上の設定が終わったらApacheを再起動し、http://localhost:8080/test/ファイル名にアクセスしてみてください。
うまくいけばIDとパスワードを聞かれるはずです(=ω=)