ApacheのBasic認証の設定方法を紹介します。Basic認証は、サーバ上の特定ディレクトリをパスワード保護することができます。しかし、欠点としてパスワードが暗号化されないため、機密性の高いデータへの認証には適していないので注意してください。

 今回は、「/home/aaa/」を公開ホルダーとして、その内部の「/home/aaa/admin/」をパスワードで管理します。パスワードファイルを管理する場所として「/usr/local/apache/password/」に保管します。「password」はデフォルトではないので、フォルダーを作成してください。

1. フォルダーの作成
Basic認証で管理する予定のフォルダーを作成してください。
[root@localhost ~]# mkdir /home/aaa/admin

パスワード管理フォルダーの作成
[root@localhost ~]# /usr/local/apache/password/

2. パスワードファイルの作成
[root@localhost ~]# cd /usr/local/apache2/bin
[root@localhost ~]# ./htpasswd -c /usr/local/apache2/passwd/passwordfile (ユーザー名)
New password:(パスワード)
Re-type new password:(パスワード)

上記の「passwordfile」がパスワードファイルになります。ファイル名は自由です。

3. Apacheの設定
 ApacheのVirtualHostで公開フォルダーを管理しているので、httpd-vhosts.conf ファイル変更内容を記述します。VirtualHostについては、以前紹介した「Apache 2.2.X のVirtualHostの設定」を参考にしてください。

[root@localhost ~]# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf

httpd-vhosts.conf へ「aaa.jp」の設定を追記

< VirtualHost *:80>
ServerAdmin xxx@shinbo.org
DocumentRoot /home/aaa
ServerName aaa.jp
ServerAlias *.aaa.jp
ErrorLog logs/www.aaa.jp-error_log
CustomLog logs/ww.aaa.jp-access_log common
<Directory “/home/aaa/admin”> ←認証かけるフォルダー
  AuthType Basic
  AuthName “aaa Admin Page” ←認証場所の名前(記入内容は自由)
  AuthUserFile /usr/local/apache2/passwd/passwordfile ←パスワードファイルのパス
  Require user (ユーザー名)
</Directory>
< /VirtualHost>

以上の様に設定が完了しましたら、apacheを再起動します。
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart

4. 確認作業
 ブラウザで「http://www.aaa.jp/admin」にアクセスし、認証画面が出たら、先ほど設定したユーザー名とパスワードでログインしてください。ログインできればOKです。