技術ブログ

プログラミング、IT関連の記事中心

nginxでBasic認証を設定する方法

目次

必要なパッケージのインストール

サーバーにて、以下のコマンドを実行して「httpd-tools」をインストールする。

yum install httpd-tools

htpasswdファイルの作成

以下のコマンドを実行する。
※「username」の部分は、Basic認証のユーザー名に置き換えてください。

htpasswd -c /etc/nginx/.htpasswd username

パスワードの確認が行われるので、Basic認証で使用したいパスワードを入力してください。

nginxのドメインの設定ファイルにBasic認証の設定追加

以下のコマンドでドメインの設定ファイルを修正します。
※「example.com」の部分は各自のドメインに置き換えてください。

vi /etc/nginx/conf.d/example.com.conf

以下のように、「location」を追加します。

server {
  〜〜〜省略〜〜〜
  location / {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
  }
}

全文は以下です。
※人によって、記述内容などは相違しますので、ご参考程度にしてください。

server {
  listen 443 ssl;
  server_name example.com;
  root /var/www/html;
  index  index.html;

  ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

  ssl_prefer_server_ciphers on;

  location / {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
  }
}

修正が終わったら、nginxを再起動します。

systemctl restart nginx

Basic認証

該当のURLにアクセスした際に、以下のようなBasic認証が表示されたら成功です。
Basic認証には「htpasswdファイルの作成」で設定した内容を使用してログインしてください。

1度Basic認証にログインしたけど、再度確認したい場合には、プライベートブラウザで確認すると表示されます。