Basic認証用パスワードファイルの作り方

Basic認証をかけるためのパスワードファイルの作成やユーザー追加・削除、パスワードの更新等の方法を説明します。

Basic認証用のパスワードは、Webサーバーの設定、もしくは .htaccessファイルで指定した場所に作成する必要があります。

Basic認証の設定確認

例えば、今回このような認証設定を行うとします。

<Directory "/home/boot.superusers.jp/public_html/secret">
    AuthType Basic
    AuthName "auth"
    AuthUserFile /home/boot.superusers.jp/.himitsu
    Require valid-user
</Directory>

パスワードファイル名とPATHを確認

表にすると、2行目のPATHに「.himitsu」というファイル名でパスワードファイルを設置すればいいことが分かります。

設定項目PATH
認証ディレクトリ/home/boot.superusers.jp/public_html/secret
認証用パスワード/home/boot.superusers.jp/.himitsu

ドキュメントルートより上の階層に設置

Basic認証用パスワードを公開されているドキュメントルート内に置くのは危険です。

ドキュメントルートよりも上の階層に置く!!

.htpasswdというファイル名じゃなくてもいい

htpasswdコマンドの使い方を記した書籍やWebページに例として.htpasswdがパスワードファイル名として使われているのをよく見ます。

.htpasswd というファイル名にしなければならないという決まりはなく、自由に決めても大丈夫です。

Basic認証用パスワードファイルを作成

Basic認証用のパスワードはApache Webサーバーに含まれるユーティリティのhtpasswdコマンドを使うのが一般的です。

新規にパスワードファイルを作成

htpasswd -c /home/boot.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/boot.superusers.jp/.himitsu /home/boot.superusers.jp/.himitsu.20221202

意図した形の更新と確認ができたら、バックアップしたファイルを削除します。

ユーザーの追加

htpasswd /home/boot.superusers.jp/.himitsu trinity

同じパスワードファイルに新しく認証ユーザーを追加する場合は上記のようにします。

間違ってもcオプションは付けないでください。

cオプションを付加してhtpasswdコマンドを打てば、

新しいパスワードファイルとして .himitsu が上書きされるので注意。

パスワードの更新

htpasswd /home/boot.superusers.jp/.himitsu trinity

パスワードの更新はユーザーの追加と同じで、上記コマンドで指定したユーザーのパスワードのみ更新されます。

ユーザーの削除

htpasswd -D /home/boot.superusers.jp/.himitsu trinity

Dオプションを付加してユーザー名を指定すれば簡単に削除することができます。

htpasswdコマンドのインストール

WebサーバーにNginxを使っている場合にありがちなのですが、htpasswdコマンドが見つからない場合は、Apacheのユーティリティをインストールしてください。

Debian系

apt install apache2-utils

RedHat系

dnf install httpd-tools

関連記事

コメント

この記事へのコメントはありません。

おすすめ記事

  1. 【多段SSH】公開鍵認証で中継サーバー経由のログインが簡単!

  2. インターネットに繋いだサーバーで最初にやらなければならない設定

  3. Swapの中身を特定する方法

  4. Linuxを極めるならコマンドよりも〇〇が先だ!!

  5. お名前ドットコムのDNS設定方法