0.はじめに
個人的に、Digest認証を行える環境構築が必要だったので、
お手軽なWindows版Apacheで試してみたときのメモです。
なお、実験環境は、Windows2000 Professional SP4です。
1.Windows版Apacheのインストール
http://httpd.apache.org/download.cgiから、適切なミラーを選択して、
ApacheのWin32版(Win32 Binary (MSI Installer))をダウンロードし、インストールする。
(3/3現在、最新版は2.0.48)
以下、Apacheのインストール先フォルダを$Apache_Rootとする。
(デフォルトインストールでは、「C:\Program Files\Apache Group\Apache2」となる。)
2.auth_digest_moduleの有効化
$Apache_Root/conf/httpd.confの、
#LoadModule auth_digest_module modules/mod_auth_digest.so
のコメントをはずし、
LoadModule auth_digest_module modules/mod_auth_digest.so
とする。
3.digest認証の設定
$Apache_Root/conf/httpd.confの最後に、
<Location /test/> AuthType Digest AuthName realm AuthDigestFile .htpasswd Require valid-user </Location>を追加する。
4.パスワードファイルの作成
以下のコマンドを実行し、.htpasswdファイルを作成する。
$Apache_Root/bin/htdigest -c .htpasswd realm guest
作成後、.htpasswdファイルを$Apache_Rootに移動する。
5.認証対象ドキュメントの作成
$Apache_Root\htdocs\testフォルダを作成し、
適当なHTMLをindex.htmlとして保存する。
6.設定の有効化
Apacheを再起動して設定を有効にする。
7.表示
http://localhost/test
にアクセスしてみる。
↓のようなダイアログが表示され、4で入力したユーザ名(guest)とパスワードで、
ログインできればOK!
8.補足
http://www.omakase.org/digest.htmlや、
http://acorn.zive.net/~oyaji/tips/apache_tips2.htmを参考にして、
.htaccessによる設定も試みたのですが、Internal Server Errorになってうまく行きませんでした。
(ログには、「configuration error: couldn't check user. No user file?:」とか出ます。)
AllowOverride All
してもダメだったので、そもそもWindows版ではうまく行かないのかも知れません。
.htaccessでもうまく行ったという方、ぜひ情報いただければ幸いです。