Basic認証を使用したサイトの構築(CentOS+Apache)
Basic認証の設定方法。
仕事で必要になったので忘れる前にメモメモ。
Basic認証は、Webページにアクセスした時に
ユーザー名とパスワードが要求されるあの機能。
いちをOSとApacheのバージョン
# cat /etc/redhat-release CentOS release 5.6 (Final) # httpd -v Server version: Apache/2.2.3 Server built: May 4 2011 06:51:15
認証ユーザの追加
認証に使用したいユーザのログイン名とパスワードを.htpasswdファイルに設定する
新しく.htpasswdファイルを作成する場合 #htpasswd -c -b /etc/httpd/conf/.htpasswd user1 password 既にある.htpasswdファイルにユーザを追加する場合 #htpasswd -b /etc/httpd/conf/.htpasswd user2 password
Basic認証を有効にする
Basic認証を有効にさせるためにApache設定ファイルの最終行に以下を追記
#vim /etc/httpd/conf/httpd.conf <Directory "/var/www/html/"> ← Basic認証を設定したいディレクトリのパスを記述 AuthUserFile /etc/httpd/conf/.htpasswd ← 認証ユーザーの設定ファイルのパスを記述 AuthGroupFile /dev/null AuthName "Basic Auth" AuthType Basic Require valid-user </Directory>
最後にApacheの再起動
#/etc/init.d/httpd restart
これでおk。
Basic認証を設定したページにアクセスして認証ダイアログが表示されることを確認。
.htaccessファイルを使用する場合
Apacheの設定ファイルにBasic認証の設定を記述する以外に
.htaccess ファイルを使用してBasic認証を行う方法がある。
Apacheのアナウンスでは、
Apache チュートリアル: .htaccess ファイル
http://httpd.apache.org/docs/2.2/ja/howto/htaccess.html
httpd.conf にアクセスできない場合を除いて、 .htaccess ファイルの使用は極力避けてください。
となっているが、とりあえず。
※httpd.confに記述した方が実行速度が速いらしい
.htaccessを使用するための設定
Apacheに.htaccessを使用させるためにhttpd.confを変更する
#vim /etc/httpd/conf/httpd.conf 291行目付近 <Directory /> # AllowOverride none を All に変更 AllowOverride All </Directory>
.htaccessファイルの編集
Basic認証をかけたい場所に.htaccessファイルを配置する
#touch /var/www/html/.htaccess #vim /var/www/html/.htaccess AuthUserFile /etc/httpd/conf/.htpasswd ← 認証ユーザーの設定ファイルのパスを記述 AuthGroupFile /dev/null AuthName "Basic Auth" AuthType Basic require user user1, user2 ← ユーザ名(user1とuser2)を指定する
最後にApacheの再起動
#/etc/init.d/httpd restart
ちなみに、
Basic認証はBase64という方式で暗号化されている。
しかし、このBase64は簡単に解析できてしまうので、