このエントリーをはてなブックマークに追加


Apacheでベーシック認証の設定を行う

本資料はCentOS6, Apache/2.2.15 (Unix)を使用してベーシック認証の設定を行った手順を記してあります。
尚、CentOS6のhttpdはyumコマンドによりhttpdパッケージをインストールしました。


スポンサーリンク

関連資料

iptablesなどにより外部から接続できない場合は、以下の資料が参考になるかもしれません。

ベーシック認証を設定した環境

ベーシック認証の環境を構築したOSおよびApacheバージョンです。

# cat /etc/redhat-release 
CentOS release 6.3 (Final)
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Feb 13 2012 22:31:42

ベーシック認証モジュールの有効化

ベーシック認証を設定するために、mod_authモジュールが有効になっているか確認します。
apache(httpd)の設定ファイルであるhttpd.confを確認します。
(CentOSでは、/etc/httpd/conf/httpd.confにあります。)
コメントアウトされていないので有効になっていることが確認できました。

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule auth_basic_module modules/mod_auth_basic.so
<snip>

ベーシック認証用のパスワードファイルの作成

この資料では、ベーシック認証用のパスワードファイルは、/etc/httpd/.htpasswdに保存することにします。
rootになり、以下のコマンドにより、ベーシック認証用のパスワードファイルを作成します。

htpasswd -c /etc/httpd/.htpasswd ユーザ名

以下の実行例は、ユーザsakuraで作成しています。
パスワードとする文字列を2度入力するとベーシック認証用の.htpasswdファイルが作成されます。

# htpasswd -c /etc/httpd/.htpasswd sakura
New password: 
Re-type new password: 
Adding password for user sakura
# ls /etc/httpd/.htpasswd 
/etc/httpd/.htpasswd
# cat /etc/httpd/.htpasswd 
sakura:P/90xXxXxXxXx
  • 注意 htpasswdに-cオプションを付けることによりファイルを新規に作成します。
    ファイルが既に存在する場合は、以前の内容が削除されます。
    したがって、他のユーザIDを追加したい場合は、-cオプションを付けずにhtpasswdコマンドを実行します。 htpasswd -c でsakuraユーザを作成し.htpasswdファイルを確認
    # ls /etc/httpd/.htpasswd
    ls: cannot access /etc/httpd/.htpasswd: そのようなファイルやディレクトリはありません
    [root@centos6 ~]# htpasswd -c /etc/httpd/.htpasswd sakura
    New password: 
    Re-type new password: 
    Adding password for user sakura
    [root@centos6 ~]# cat /etc/httpd/.htpasswd 
    sakura:NGabcdefghijh
    htpasswd -c でtsubakiユーザを作成し.htpasswdファイルを確認
    # htpasswd -c /etc/httpd/.htpasswd tsubaki
    New password: 
    Re-type new password: 
    Adding password for user tsubaki
    # cat /etc/httpd/.htpasswd 
    tsubaki:Jz1234567890a
    sakuraが削除されているのが確認できます。

作成したパスワードファイルのパーミッションを変更します。
この資料では、.htpasswdファイルはapacheユーザのものに変更しapacheユーザのみが読み書きできるように変更しました。

# chown apache:apache /etc/httpd/.htpasswd 
# chmod 600 /etc/httpd/.htpasswd 
# ls -l /etc/httpd/.htpasswd 
-rw-------. 1 apache apache 43  9月 24 11:17 2012 /etc/httpd/.htpasswd

みなさんの環境に応じて適正なパーミッションを設定してください。

ユーザの追加

ユーザ追加の場合は、htpasswdコマンドにオプションなしで実行すれば引数で指定したユーザを追することができます。

# htpasswd /etc/httpd/.htpasswd tsubaki
New password: 
Re-type new password: 
Adding password for user tsubaki
# cat /etc/httpd/.htpasswd 
sakura:NGabcdefghijh
tsubaki:Jz1234567890a

パスワードの更新

パスワードの更新の場合は、htpasswdコマンドにオプションなしで実行すれば引数で指定したユーザのパスワードを変更することができます。

# htpasswd /etc/httpd/.htpasswd sakura
New password: 
Re-type new password: 
Updating password for user sakura

httpd.conf側の設定

今回使用した環境デフォルトのままであり、以下のように設定されています。

DocumentRoot "/var/www/html"
   :
   :
   :
<Directory "/var/www/html">
   :
   :

本資料では、<Directory "/var/www/html"> 中略 </Directory>にダイジェスト認証の設定を行います。
変更した内容は以下の通りになります。

<Directory "/var/www/html">
   AuthType Basic
   AuthName "AuthArea"
   AuthUserFile /etc/httpd/.htpasswd
   Require valid-user
    :

追加したのは、以下の4行です。

AuthType Basic
AuthName "AuthArea"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user

AuthTypeにはBasic
AuthNameには、AuthAreaという領域名を設定
AuthUserFileには、htpasswdコマンドで指定したダイジェスト用パスワードファイルを設定
Require valid-userを追記しました。

Apacheを再起動して設定を反映させる

Apacheが既に起動している場合は、Apacheを再起動します。
停止している場合は、Apacheを起動してください。
今回は、CentOSを利用しているので以下のコマンドで起動、停止、再起動ができます。

  • 起動
    service httpd start
  • 停止
    service httpd stop
  • 再起動
    service httpd stop

ベーシック認証をためしてみる

ブラウザを起動してBasic認証を設定したホストに接続します。
きちんと設定されていれば、以下のように認証画面が表示されます。
AuthNameに指定した文字列が表示されているのが確認できます。
認証にはユーザIDパスワードはhtpasswdコマンドで指定した値を使用します。

basic-01.gif

スポンサーリンク

添付ファイル: filebasic-01.gif 194件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:35:46 (1281d)