Debian10(Apache2)のWebサーバでBASIC認証設定

以下、作業用メモです。

WordPressサイトにBASIC認証を設定

BAISC認証設定手順の一例を載せる。

  1. .htaccessファイルの作成
    まず、WordPressのインストールディレクトリに.htaccessという名前のファイルを作成します。このファイルはApacheサーバーの設定を制御するためのものです。
  2. .htaccessファイルへの記述
    次に、.htaccessファイルに以下のような内容を記述します。
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

ここで、AuthUserFileの部分はパスワードファイルのパスを指定します。この例では/etc/apache2/.htpasswdとしていますが、適切な場所に変更してください。

  1. .htpasswdファイルの作成
    次に、上記で指定したパスに.htpasswdという名前のファイルを作成します。このファイルは認証に使用するユーザー名とパスワードを保存するためのものです。
  2. .htpasswdファイルへのユーザー名とパスワードの追加
    .htpasswdファイルには、以下のような形式でユーザー名とパスワードを追加します。
username:password

ただし、パスワードは平文ではなく、Apacheが提供するhtpasswdコマンドを使用して暗号化したものを設定します。例えば、ユーザー名が’user’でパスワードが’password’の場合、以下のコマンドで追加できます。

htpasswd -b /etc/apache2/.htpasswd user password
  1. Apacheサーバーの再起動
    最後に、設定を反映させるためにApacheサーバーを再起動します。Debianでは以下のコマンドで再起動できます。
sudo systemctl restart apache2

以上で、WordPressサイトにBASIC認証が追加されます。これらの手順はコマンドラインから行いますので、SSH等でサーバーにログインする必要があります。

apache2配下の「.htpasswdファイル」について

.htpasswdファイルは、BASIC認証で使用するユーザー名とパスワードを保存するためのものです。このファイルには、以下のような形式でユーザー名とパスワードを追加します。

username:password

ただし、ここでいうpasswordは平文ではなく、Apacheが提供するhtpasswdコマンドを使用して暗号化したものを設定します。例えば、ユーザー名が’user’でパスワードが’password’の場合、以下のコマンドで追加できます。

htpasswd -b /etc/apache2/.htpasswd user password

このコマンドを実行すると、/etc/apache2/.htpasswdというパスに.htpasswdファイルが作成され(または既存のものが更新され)、その中に暗号化されたパスワードが保存されます。これにより、BASIC認証時に正しいユーザー名とパスワードを入力しなければアクセスできないようになります。

なお、この.htpasswdファイルはウェブから直接アクセスできない場所に保存することが推奨されています。これは、万が一ウェブサイトに脆弱性があった場合でも、このファイルが漏洩しないようにするためです。具体的な保存場所はサーバーの環境やセキュリティポリシーによりますので、適切な場所を選びましょう。

複数のBASIC認証設定と、範囲限定

既存の.htaccessファイルがある場合は、そのファイルに追記する形でBASIC認証を追加することが可能です。ただし、複数のBASIC認証を設定する場合、それぞれの認証が適用されるディレクトリを明確にする必要があります。

例えば、/var/www/htmlディレクトリ全体に適用されるBASIC認証が既にあり、その中の/var/www/html/blogディレクトリだけに追加でBASIC認証を設定したい場合は、以下の手順で設定できます。

  1. /var/www/html/blogディレクトリに移動します。
  2. そのディレクトリ内に.htaccessファイルを作成(もしくは既存のものを編集)します。
  3. その.htaccessファイルに、新たなBASIC認証の設定を記述します。具体的には、新たなAuthUserFileで指定するパスワードファイルを作成し、そのパスをAuthUserFileに設定します。

これにより、/var/www/html/blogディレクトリにアクセスする際だけ追加のBASIC認証が求められるようになります。ただし、この設定では/var/www/htmlディレクトリへのアクセス時にも元々のBASIC認証が求められますので、2段階の認証となります。

なお、この手順もあくまで一例であり、具体的な設定はサーバーの環境やセキュリティ要件によります。

※ちなみにアイキャッチ画像はbingに生成してもらいました。

この記事を書いた人