🔑

Nginxでベーシック認証してみた

2024/10/09に公開

Nginxを使ってベーシック認証を設定する方法を解説します。

環境

  • OS: AlmaLinux 9.4
  • Nginx: 1.20.1

ベーシック認証とは

ベーシック認証は、Webサーバーで簡単に実装できるユーザー認証方式の一つです。

前提

  • Nginxインストール済み
  • Nginx起動済み(sudo systemctl start nginx)

手順

1. htpasswdコマンドを、使用できるようにする為のパッケージをインストール

Ubuntu/Debianの場合

sudo apt install apache2-utils

CentOS/RHELの場合

sudo yum install httpd-tools

2. .htpasswdファイル作成

  • 今回パスの方を
    /var/www/project_name/
    にしていますが、プロジェクトの開発指針によって適宜変更してください。

  • user_name: ベーシック認証をする時のユーザー名

  • password: ベーシック認証をする時のパスワード

$ sudo htpasswd -c /var/www/project_name/.htpasswd [user_name] 
New password: [password]
Re-type new password: [password]
Adding password for user user_name

3. Nginxの設定ファイルを編集

  • Nginxの設定ファイルは通常は/etc/nginx/sites-available/default
    または/etc/nginx/nginx.confにあります。
$ sudo vi /etc/nginx/conf.d/default.conf
...
location / {
    auth_basic "Restricted Access";  # 認証ダイアログに表示されるメッセージ
    auth_basic_user_file /etc/nginx/.htpasswd;  # ユーザー情報ファイルのパス
}
...

4. Nginxの設定をテスト

  • Nginxの設定ファイルにエラーが無いか確認します。
$ sudo nginx -t

5. Nginxを再起動

  • 設定を反映させるためにNginxを再起動します。
$ sudo systemctl restart nginx

Discussion