ほとんどのレンタルサーバーでは Basic 認証を GUI で設定できるツールを用意されていると思いますが、そういった
ツールがない環境で設定する機会があったので、メモしておきます。作業はssh で接続して行いました。
設定方法
.htaccess ファイルの作成
[centos@localhost temp]$ vi .htaccess AuthType Basic AuthName "Restricted Files" AuthUserFile /var/www/html/temp/.htpasswd Require user test
.htpasswd ファイル(パスワードファイル)の作成
[centos@localhost temp]$ htpasswd -c /var/www/html/temp/.htpasswd test New password: Re-type new password: Adding password for user test
以上の手順だけで、ドキュメントルート以下の temp ディレクトリに Basic 認証をかけることができました。
Basic 認証を昨日させているモジュール
Apache 2.1 より前のバージョンでは、mod_auth によって Basic 認証機能が実装されている模様。そのため、Basic 認証を使うには、httpd.conf で mod_auth.so が読み込まれていることが必要。
LoadModule auth_module modules/mod_auth.so
Apahe 2.1 以降では、mod_auth_basic モジュールで実装されているようです。今回は Apache 2.0 を使っているので、こちらは確認していません。モジュールのインストールから始める必要のある環境は、通常の WEB サーバーであれば、ほとんどないのではないかと。
その他必要な設定
Basic 認証の設定を書き込む場所は、Apache の設定ファイルである httpd.conf に直接書くか、該当のディレクトリに .htaccess ファイルを設置する方法の 2通り。.htaccess を使う場合は、httpd.conf に以下の設定が必要です。
AllowOverride AuthConfig
もちろん、AllowOverride All でも。 普段は、httpd.conf を触ることはしないので、.htaccess を設置しました。 httpd.conf で設定を行う場合でも、設定項目は同じです。
使用したディレクティブ
AuthType : ユーザ認証の種類を指定。BasicかDigestを指定。
AuthName : ここで AuthName に指定した文字列が、大部分のブラウザのパスワードダイアログに表示される。
AuthUserFile : 認証に使用するユーザとパスワードの一覧が格納されている、テキストファイルの名前を設定。
Require : 認証に使用するユーザー名を指定。
htpasswd コマンド
パスワードファイルの作成に必要なコマンド。Apache に付属します。以下の構文で実行します。
htpasswd -c Filename username
書式が分かれば手入力でも作成はできるが、通常はこのコマンドを使う。主なオプションは、 以下の通り。
-c : 新しいパスワードファイルを作成。同名のパスワードファイルがすでに存在する場合は、既存の内容が上書きされる。
-n : テスト実行用のオプション。他のオプションなどの構文エラーがないかなどの確認に用いる。-c と一緒に使うことはできない。
-m : パスワードをファイルに書き込む際、MD5 でハッシュした値を書き込みます。
-d : パスワードをファイルに書き込む際、CRYPT でハッシュします(デフォルト)。
-p : パスワードをファイルに書き込む際、ハッシュせずに、プレーンなテキストで書き込みます。
-s : パスワードをファイルに書き込む際、SHA でハッシュします。
-D : ユーザーを削除します。







