バージョン 2.2.3
Web サイトでページを閲覧できるユーザを限定したい場合、認証をかけることができる。
Apache で digest 認証有りのページを作成する方法は次の通り。
digest 認証は basic 認証に比べ、
パスワードが暗号化されてやり取りされるため、
セキュリティが高い。
ただし、古いブラウザが対応できないため導入には注意が必要。
まず、Web 認証用のユーザを作成する。
# htdigest -c [任意のファイル名] [レルム] [任意のユーザ名] New password: Re-type new password:
例)
# htdigest -c /etc/httpd/.htdigest 'secret page' test Adding password for test in realm secret page. New password: [任意のパスワード] Re-type new password:[上で入力したパスワード]
「-c」オプションは、パスワードファイルを作成する際に使用する。
1回目のユーザ作成時のみ「-c」を使用。
2回目以降不要。
認証をかけたいディレクトリを作成する。
# mkdir /var/www/html/secret
次に、httpd.conf を以下のように編集する。
<Directory [認証をかけたいディレクトリ]> AuthType Digest AuthName [ユーザ作成時に指定したレルム] AuthDigestFile [ユーザ作成時に指定したパスワードファイル] Require user [許可したいユーザ1] [許可したいユーザ2] [許可したいユーザ3] </Directory>
例)
<Directory "/var/www/html/secret"> AuthType Digest AuthName "secret page" AuthDigestFile /etc/httpd/.htdigest Require user test </Directory>
httpd を再起動する。
これで、secret ディレクトリにアクセスすると認証が聞かれるようになる。
ちなみに、認証はサブディレクトリにも適用される。
/etc/httpd/conf/httpd.confの認証をかけたいディレクトリの
ディレクティブの書き方は、basic認証の方で紹介する方法でも同じ意味。
Apache で認証有りのページを作成する(basic 認証)
.htaccessファイルを使用する方法は
httpd.confを編集できないユーザに対してユーザ認証に関して設定できるようにすることが可能。