apacheでBASIC認証をかけてもダイアログが表示されない場合の対処方法
本日ApacheにBASIC認証をかける作業を行ったのですが、
ID/パスワード入力のダイアログが表示されずハマったので自分用にメモ。
BASIC認証のかけかた
/etc/httpd/conf/httpd.conf内、<Directory>の箇所に以下の記述を行います。
<Directory "/home/www/html/"> AuthUserFile /home/www/html/.htpasswd AuthGroupFile /dev/null AuthName "Basic Auth" AuthType Basic Require valid-user </Directory>
初期設定の要素を削除
しかし、httpd.confには初期で様々な記述があり、不要な情報を削除する必要があります。
私の場合は以下記述を残していたため、ダイアログが表示されませんでした。
Require all granted
Require all granted を記述すると、全アクセスを許可してしまっている状態となります。
Apache 2.4 の Require ディレクティブは、デフォルトでは複数定義すると or 扱い(暗黙のRequireAny)になるので、「無条件でOK か ベーシック認証できたらOK」という条件になり、常に全アクセスを許可する記述となっています。
ですので、Require all grantedを削除する事で正常に動作が確認できたと言うオチでした。
最新情報をお届けします