2026年8月10日
2026年8月10日
NginxでBasic認証を設定する方法
はじめに
Basic認証は、ウェブサイトへのアクセスを保護するための重要なセキュリティ機能です。ユーザーがログイン情報を入力することでサーバーへアクセスでき、不正なユーザーやスパイウェアからデータを守ることができます。Nginxを使用している場合でも、同様にBasic認証を設定できます。
症状・背景
このテーマが必要になる主な場面:
- サイトのセキュリティ強化
- 特定のページやディレクトリへのアクセス制限
- 敏感な情報の保護
手順・設定方法
ステップ1: 認証ファイルを作成する
# ユーザーネームとパスワードを保存するためのhtpasswdファイルを作成します
sudo htpasswd -c /etc/nginx/.htpasswd username
このコマンドは/etc/nginx/.htpasswdというファイルにusernameというユーザー名とパスワードを記録します。最初実行するとパスワードを要求されます。
ステップ2: Nginx設定ファイルにBasic認証を追加する
# Nginxのサイト設定ファイルを開きます
sudo nano /etc/nginx/sites-available/example.com
# セキュリティが必要なディレクトリに以下のブロックを追加します
location /protected/ {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
この設定により、/protected/というパス配下のページへのアクセスにはBasic認証が必要になります。
ステップ3: Nginxを再読み込みする
# 設定が正しく適用されていることを確認するためにNginxを再読み込みします
sudo nginx -t
sudo systemctl reload nginx
これらのコマンドにより、新しい設定が正しく適用されているかチェックし、必要であれば無効な設定を取り除くことができます。
ステップ4: 実践/トラブルシュート/監視
# 修正点や問題を追跡するためにNginxのログファイルを確認します
sudo tail -f /var/log/nginx/error.log
上記コマンドでエラーログを確認することで、設定に問題がないことを確認できます。また、定期的にアクセスログもチェックすることで、認証プロセスが正しく動作しているかを監視することができます。
注意事項
- Nginxの設定ファイルは修正に注意しましょう。
- 認証情報を安全な場所(例:
/etc/nginx/.htpasswd)で管理してください。 - セキュリティ上の注意: パスワードはハッシュ化されているため、直接読み取ることはできませんが、管理上は十分なセキュリティが必要です。
まとめ
1. 認証ファイルの作成: htpasswdコマンドを使って認証情報を保存します。
2. Nginx設定の追加: 認証が必要なディレクトリにBasic認証を適用します。
3. 再読み込み: Nginx設定を無効化せずに新しい設定を読み込みます。
4. 監視: 必要に応じてアクセスログやエラーログを確認します。
関連記事: