LoginSignup
12
12

More than 5 years have passed since last update.

サーバの基礎: httpd(apache)の認証設定

Last updated at Posted at 2014-06-17

httpdの認証設定

認証方式

  • BASIC認証
    • HTTPプロトコルの基本認証とも言われる
    • ほぼ全てのWebサーバ/クライアントが対応
    • ユーザー名とパスワードがそのままネットワーク上を流れるので改ざん・盗聴される可能性あり
    • ユーザー登録コマンド(htpasswd)は対話形式 or コマンド1発
  • DIGEST認証
    • BASIC認証から安全性を高めた認証方式
    • ユーザー名とハッシュ(パスワードやランダム文字列から算出)を用いるため、第3者によるパスワードの推定が困難
    • ユーザー登録コマンド(htdigest)は対話形式

BASIC認証の設定

http://HOSTNAME/aaa/bbb 対してBASIC認証を有効にする手順を説明する
以下操作はrootユーザーで実施する

httpdの設定ファイル編集

下記を記述した /etc/httpd/conf.d/auth_basic.conf を作成

/etc/httpd/conf.d/auth_basic.conf
 <Location /aaa/bbb>
    # 認証方式
    AuthType Basic
    # 認証時の表示メッセージ
    AuthName "Auth Test1"
    # 認証用パスワードファイル
    AuthUserFile /var/www/.htpasswd
    # 認証を許可するユーザー (valid-userなら登録された全ユーザー許可).
    Require valid-user
 </Location>

パスワードファイルの作成

下記コマンドで /var/www/.htpasswd (auth_basic.confで指定した場所) にパスワードファイルを作成

 $> htpasswd -cb /var/www/.htpasswd <ユーザー名> <パスワード>

更にユーザーを追加する場合は下記コマンドを実施.

 $> htpasswd -b /var/www/.htpasswd <ユーザー名> <パスワード>

※ パスワードファイルは サーバ外部からアクセスできない場所 に配置すること

設定反映

下記コマンドでhttpdに設定内容を反映

 $> /etc/init.d/httpd reload

動作確認

http://HOSTNAME/aaa/bbbをブラウザで表示して認証ダイアログ出たら以下を確認.

  • 登録済ユーザー名 & 正しいパスワード => 認証OK
  • 登録済ユーザー名 & 間違いパスワード => 認証NG
  • 未登録ユーザー名 & テキトーなパスワード => 認証NG

DIGEST認証

http://HOSTNAME/ccc/ddd に対してDIGEST認証を有効にする手順を説明する.
以下操作はrootユーザーで実施する.

httpdの設定ファイルの編集

下記内容を記述した /etc/httpd/conf.d/auth_digest.conf を作成.

/etc/httpd/conf.d/auth_digest.conf
<Location "/ccc/ddd">
  # 認証方式
  AuthType Digest
  # 認証時の表示メッセージ
  AuthName "Auth Test2"
  # 認証用パスワードファイル
  AuthUserFile /var/www/.htdigest
  # 認証を許可するユーザー (valid-userなら登録された全ユーザー許可)
  Require valid-user
</Location>

パスワードファイルの作成

下記コマンドで /var/www/.htdigest (auth_digest.confで指定した場所) にパスワードファイルを作成

$> htdigest -c /var/www/.htdigest "Auth Test2" <ユーザー名>
   (*) "Auth Test2" の部分はauth_digest.confのAuthNameと同じ.

>> 以下対話形式でパスワードを入力
Adding user ユーザー名 in realm Authorization
New password:         << パスワード入力
Re-type new password: << パスワード入力 (確認用)

更にユーザーを追加したい場合は以下コマンドで追加

$> htdigest /var/www/.htdigest "Auth Test2" <ユーザー名>

>> 以下対話形式でパスワード入力

※ BASIC認証同様、このパスワードファイルも 外部からアクセスできない場所 に配置すること.

設定反映

下記コマンドでhttpdに設定を反映.

$> /etc/init.d/httpd restart

動作確認

http://HOSTNAME/ccc/dddをブラウザで表示して認証ダイアログが出たら以下を確認.

  • ダイアログの表示メッセージ = auth_digest.conf の AuthName
  • 登録済ユーザー名 & 正しいパスワード => 認証OK
  • 登録済ユーザー名 & 間違いパスワード => 認証NG
  • 未登録ユーザー名 & テキトーなパスワード => 認証NG
12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12