Apacheでパスワードの設定をする(BASIC認証)
目次
はじめに【Apacheでパスワードを設定する】
個人用のページや会員制サイトなど、パスワードで閲覧ユーザーを制限したい場合はありませんか?Apacheでは「BASIC認証」という方法でページにパスワードを設定することができます。今回はBASIC認証の設定手順を紹介します。
環境
- サーバー : ConohaVPS
- OS : Debian11.4
- Apache : Apache2.4.54
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認証によるパスワードは簡易的なもので、セキュリティ的に弱いです。重要情報を記載したページには向きませんが、「個人的な写真があるので完全に公開したくない」「家族だけ見れれば十分」みたいな用途では便利に使えると思います。重要な個人情報(暗証番号や個人情報など)などは注意しましょう。