読者です 読者をやめる 読者になる 読者になる

基本認証 (BASIC認証)

CentOS apache

基本認証 (BASIC認証) を使うと正しい ユーザー名/パスワード を入力しなければ見ることのできないディレクトリを設定できる。基本認証の設定は、2種類。

  • httpd.conf に設定する方法
  • .htaccess ファイルを用意する方法

毎度おなじみ .htaccess 過去何度似たようなことで詰まったか・・・ (:D)rz

httpd.conf に設定する方法

httpd.conf の Section2 に記述を追加する

<Directory "/var/www/html/hoge">
    AuthType Basic
    AuthName "Please Enter Your ID and Pass"
    AuthUserFile /etc/httpd/conf/.htpasswd_hoge
    AuthGroupFile /dev/null
    Require valid-user
</Directory>
  • AuthType には「Basic」を指定
    (基本認証の他にダイジェスト認証なるものもあるらしい)
  • AuthName には認証時に表示されるメッセージを指定
  • AuthUserFile には認証情報が格納された任意のファイル名をそれぞれ指定
  • Require valid-user と指定すると、認証情報ファイルに登録されたすべてのユーザーが許可対象になる

.htaccess ファイルを用意する方法

AuthType Basic
AuthName "Please Enter Your ID and Pass"
AuthUserFile /etc/httpd/conf/.htpasswd_hoge
AuthGroupFIle /dev/null
Require valid-user

httpd.conf に記述を追加

<Directory "var/www/html/hoge">
    AllowOverride AuthConfig
</Directory>

ユーザーの作成とパスワード設定

認証時に使用するユーザーとパスワードを設定するには htpasswd コマンドを使う

htpasswd -c ファイル名 ユーザー名
オプション 内容
-c 新規ファイル作成
-b 入力プロンプトを出さずにコマンドライン上でパスワードを設定
-m パスワードを md5暗号化
-d パスワードを CRYPT暗号化(デフォルト)
※ CRYPT暗号化の場合、最初の8文字しか使わない
-P パスワードを暗号化しない
-D (Delete) 指定したユーザーを削除
-n 実行結果を表示する。ファイルは作成されない
htpasswd -n ユーザー名 のようにファイルパスは省略する
-s パスワードを SHA暗号化