Basic認証をかけるためのパスワードファイルの作成やユーザー追加・削除、パスワードの更新等の方法を説明します。
Basic認証用のパスワードは、Webサーバーの設定、もしくは .htaccessファイルで指定した場所に作成する必要があります。
目次
Basic認証の設定確認
例えば、今回このような認証設定を行うとします。
<Directory "/home/www.superusers.jp/public_html/secret">
AuthType Basic
AuthName "auth"
AuthUserFile /home/www.superusers.jp/.himitsu
Require valid-user
</Directory>
パスワードファイル名とPATHを確認
表にすると、2行目のPATHに「.himitsu」というファイル名でパスワードファイルを設置すればいいことが分かります。
設定項目 | PATH |
---|---|
認証ディレクトリ | /home/www.superusers.jp/public_html/secret |
認証用パスワード | /home/www.superusers.jp/.himitsu |
ドキュメントルートより上の階層に設置
Basic認証用パスワードを公開されているドキュメントルート内に置くのは危険です。
ドキュメントルートよりも上の階層に置く!!
.htpasswdというファイル名じゃなくてもいい
htpasswdコマンドの使い方を記した書籍やWebページに例として.htpasswdがパスワードファイル名として使われているのをよく見ます。
.htpasswd というファイル名にしなければならないという決まりはなく、自由に決めても大丈夫です。
Basic認証用パスワードファイルを作成
Basic認証用のパスワードはApache Webサーバーに含まれるユーティリティのhtpasswdコマンドを使うのが一般的です。
新規にパスワードファイルを作成
htpasswd -c /home/www.superusers.jp/.himitsu neo_captain
① Basic認証用パスワードファイル ② ユーザー名
returnを押し、パスワードを入力すれば指定場所にパスワードファイルが作成される。
New password: **********
Re-type new password: **********
Adding password for user captain_neo
新規作成する際のポイントはcオプションを付加すること。
-c は Create a new file を意味しています。新規作成時にオプションをつけ忘れると以下のメッセージが表示されます。
htpasswd: cannot modify file testpass; use '-c' to create it
Basic認証用パスワードファイルの更新
Basic認証用のパスワードファイルを更新する前には、以下のようにcpコマンドで元ファイルをバックアップしておくことをお勧めします。
cp -p /home/www.superusers.jp/.himitsu /home/www.superusers.jp/.himitsu.20221202
意図した形の更新と確認ができたら、バックアップしたファイルを削除します。
ユーザーの追加
htpasswd /home/www.superusers.jp/.himitsu trinity
同じパスワードファイルに新しく認証ユーザーを追加する場合は上記のようにします。
間違ってもcオプションは付けないでください。
cオプションを付加してhtpasswdコマンドを打てば、
新しいパスワードファイルとして .himitsu が上書きされるので注意。
パスワードの更新
htpasswd /home/www.superusers.jp/.himitsu trinity
パスワードの更新はユーザーの追加と同じで、上記コマンドで指定したユーザーのパスワードのみ更新されます。
ユーザーの削除
htpasswd -D /home/www.superusers.jp/.himitsu trinity
Dオプションを付加してユーザー名を指定すれば簡単に削除することができます。
htpasswdコマンドのインストール
WebサーバーにNginxを使っている場合にありがちなのですが、htpasswdコマンドが見つからない場合は、Apacheのユーティリティをインストールしてください。
Debian系
apt install apache2-utils
RedHat系
dnf install httpd-tools
コメント