ウェブサーバ - アクセス制限 - パスワードによって制限をかける
- 1. 概要
- 2. パスワードファイル作成
- 3. コンフィグレーションファイルの設定
- 4. ログインの例
1. 概要
例題は、以下の環境とします。
項目 | 設定 |
サイトの絶対パス | /usr/local/www/data/hogehoge |
制限する URL | http://www.hogehoge.jp/hogehoge/ |
定義ファイル | /usr/local/etc/apache22/Includes/hogehoge.conf |
パスワードファイルパス | /path |
パスワードファイル | passwd |
ユーザ | hogehoge |
2. パスワードファイル作成
パスワードファイルの管理には、「htpasswd」というコマンドを使用します。
(apache24 のインストール時に「/usr/local/bin」にインストールされています)
パスワードファイルを作成します。
パスワードファイル作成時に最低限、1ユーザを作成しなければなりません。
$ htpasswd -c /path/passwd hogehoge
New password: ← パスワードを入力
Re-type new password: ← パスワードを再入力
Adding password for user hogehoge
「-c」オプションは、作成する「create」という意味です。
その先のパラメータは、パスワードファイル名を示しています。
「/path/passwd hogehoge」の「/hogehoge/passwd」は、パスワードファイル名の指定です。
「hogehoge」はパスワードを設定するユーザアカウント名です。
パスワードとして入力した文字は、エコーバックされません。
打ち間違えると、ユーザアカウントが作成されないので、もう一度コマンドを入力するところからやりなおします。
ユーザを追加する場合は以下のようにします。
$ htpasswd /path/passwd fugafuga
New password: ← パスワードを入力
Re-type new password: ← パスワードを再入力
Adding password for user fugafuga
これで、ユーザ「fugafuga」が作成されます。
パスワードの変更時も同じコマンドで「-c」オプションをつけないことで変更できます。
ユーザアカウントを削除するときは、パスワードファイルをテキストエディタで開いて、対象のユーザアカウントの行を削除します。
3. コンフィグレーションファイルの設定
/usr/local/etc/apache22/Includes/hogehoge.conf
に以下のように記述します。
<Directory "/usr/local/www/data/hogehoge">
・・・ 略 ・・・
AuthType Basic
AuthName "Welcome to hogehoge"
AuthUserFile /path/passwd
Require valid-user
</Directory>
「AuthType」は、認証機構の種別を指定するものですが、パスワードによる基本認証を行う場合は、「Basic」にします。
「AuthName」は、パスワード入力画面の、「領域:」として表示させるメッセージです。
必ず、ダブルクォーテーションでくくります。
中身には、自分の好きなメッセージや、領域を示す内容を記述します。メッセージの表示形式はブラウザによっても異なります。
「AuthUserFile」は、パスワードファイルを指定するものです。
パスワードファイルを置くディレクトリやファイル名は自由ですが、セキュリティ上、ウェブサーバのドキュメントルート外におくべきです。
「require valid-user」は、認証されたユーザにしか、アクセスさせないという定義です。
「.htaccess」に書く場合は、「/usr/local/etc/apache22/Includes/hogehoge.conf」の上記記述を削除して。
「.htaccess」に以下のように記述します。
AuthType Basic
AuthName "Welcome to hogehoge"
AuthUserFile /path/passwd
Require valid-user
「/usr/local/etc/apache22/Includes/hogehoge.conf」を変更した場合は、再起動
service apache24 configtest
service apache24 graceful
「.htaccess」を変更した場合は、即時反映されます。
4. ログインの例
設定したサイトにアクセスすると、「Firefox(64.0)」の場合、下記のように表示されます。

「Vivaldi(2.2.1388.37)」の場合、下記のように表示されます。
なるほど、「AuthName」の内容が、「Firefox」では表示され、「Vivaldi」では表示されていません。
|
|