#はじめに
Digest認証で設定するたびにうまくいかないことが多かったので、実際に設定できた手順を紹介します!
OS:CentOS6.8
Apache:2.2
##・まずはDigest認証のファイルを作成します。
IDとPWは下記のものを変更して下さい。
ID:123456
PW:11112222
/var/hoge/の部分は設置したいページのドキュメントルートに合わせて適宜変更して下さい。
Digest Zoneはわかりやすい名前を適宜つけましょう。
% sudo htdigest -c /var/hoge/.htdigest 'Digest Zone' 123456
Adding password for 1431050 in realm Digest Zone.
New password:11112222
Re-type new password:11112222
##・digest認証のモジュールが有効か確認。
cd /etc/httpd/conf
sudo cp httpd.conf httpd.conf.bk
sudo vim /etc/httpd/conf/httpd.conf
LoadModule auth_digest_module modules/mod_auth_digest.so
バックアップは忘れずに。
この時LoadModule auth_digest_moduleがコメントアウトされていたら外しましょう。
##・Apacheのconfファイルにダイジェスト認証の設定を追記
Digest認証のファイルを作成
のときに指定した、/var/hoge/.htdigestとDigest Zoneと完全に一致している必要があるので注意して下さい。
sudo vim /etc/httpd/conf.d/hoge.conf
<Directory "/var/hoge/">
Options FollowSymLinks
AllowOverride None
Order deny,allow
AuthType Digest
AuthName "Digest Zone"
AuthUserFile "/var/hoge/.htdigest"
Require valid-user
</Directory>
##・Apacheを再起動し設定を反映
sudo /etc/init.d/httpd restart
ダイジェスト認証の設定が適用され、ページにアクセスすると、IDとPWを要求されるはずです。
これでダイジェスト認証の設定はOKです。
##特定のIPに対してダイジェスト認証なしでアクセスを許可する設定
実は、社内からのアクセスだけダイジェスト認証無しでお願い!なんて要望にもばっちり応えることが出来ます。
##/etc/httpd/conf.d/hoge.confに下記内容を追記
Satisfy Any
Order deny,allow
deny from all
Allow from XXX.XXX.XXX.XXX NNN.NNN.NNN.NNN
sudo vim /etc/httpd/conf.d/hoge.conf
<Directory "/var/hoge/">
Options FollowSymLinks
AllowOverride None
AuthType Digest
AuthName "Digest Zone"
AuthUserFile "/var/hoge/.htdigest"
Require valid-user
Satisfy Any
Order deny,allow
deny from all
Allow from XXX.XXX.XXX.XXX NNN.NNN.NNN.NNN
</Directory>
Allow fromで指定したIPからアクセスすると、Digest認証が要求されないようになりました!
これで安全なIPアドレスからのアクセスでいちいち認証する必要がなくなりました!