Apacheでパスワードの設定をする(BASIC認証)

Apacheでパスワードの設定をする(BASIC認証)
目次


はじめに【Apacheでパスワードを設定する】

個人用のページや会員制サイトなど、パスワードで閲覧ユーザーを制限したい場合はありませんか?Apacheでは「BASIC認証」という方法でページにパスワードを設定することができます。今回はBASIC認証の設定手順を紹介します。

環境

  • サーバー : ConohaVPS
  • OS : Debian11.4
  • Apache : Apache2.4.54

  • VPSとApacheの設定はこちらの記事 でやっています。
  • こちら のサイトを参考にさせていただきました。

Apacheの設定

パスワード認証を行うのにApacheの設定が必要です。VPSにログインしてコンソールで作業します。VPSの設定変更などは必要ありません。

1. パスワードファイルの作成

管理者になってhtpasswdコマンドを実行します。

# htpasswd -c /etc/apache2/pwfile username
New password: 
Re-type new password: 
Adding password for user marimo
  • /etc/apache2/pwfileは認証に使うユーザー名とパスワードを記録するファイルです(変更可)。
  • usernameはサイト表示時に聞かれるユーザー名です。任意に設定してください。
  • コマンドを実行するとパスワードの入力を求められるので、入力してください。

catコマンドで確認すると、ユーザー名と暗号化されたパスワードが確認できます。

# cat /etc/apache2/pwfile
username:$cpr1$40UadjDx$WLNnYozxeYO3QyZ0n5qV0.

2. 設定ファイル(/etc/apache2/apache2.conf)の編集

apache2.confにDirectoryタグを追記します。

<Directory "/var/www/html">
  AuthType Basic
  AuthName "auth"
  AuthUserFile /etc/apache2/pwfile
  Require valid-user
</Directory>
  • /var/www/htmlはBASIC認証するサイトのディレクトリを指定します。
  • AuthUserFileには1.で作成したフィルを指定します。

3. 設定ファイルを再読み込みする

再読み込みして変更を反映させます。

#systemctl reload apache2

4. サイトを表示してみる

設定したサイトをブラウザで開きます。ユーザーとパスワードを聞かれたら成功です。入力してサイトが表示されることを確認してください。

ブラウザチェック画面

おわりに

BASIC認証によるパスワードは簡易的なもので、セキュリティ的に弱いです。重要情報を記載したページには向きませんが、「個人的な写真があるので完全に公開したくない」「家族だけ見れれば十分」みたいな用途では便利に使えると思います。重要な個人情報(暗証番号や個人情報など)などは注意しましょう。