この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
目次
Linux 環境にベーシック認証をインストールする
サイトへのアクセス制限を行うときにベーシック認証はとても便利です。
ベーシック認証は Apache の拡張機能のため、初期状態では Nginx では利用できません。ただ作業手順を知っていれば導入は簡単に行えるため、ベーシック認証の導入手順をまとめていきます。
ベーシック認証を設定する手順
では早速ベーシック認証の設定方法を確認していきます。
作業手順1:ベーシック認証のモジュールをインストールします。
CentOS / Redhat 系で利用する「yum」コマンドと Ubuntu / Debian 系で利用する「apt」コマンドでは、インストールするパッケージ名が異なります。
CentOS / Redhat系の場合
Ubuntu / Debian系の場合
作業手順2:ベーシック認証で登録するユーザーを追加する
「htpasswd」コマンドを使用して、ベーシック認証に追加するファイルを設定します。
作業手順3:Nginx の設定ファイルにベーシック認証の設定を追加する
1 2 3 4 |
location / { auth_basic "Auth"; auth_basic_user_file "/etc/nginx/.htpasswd"; } |
作業手順4:Nginx を再起動する
インストール手順の実行履歴と詳細説明
インストール手順を実行した際のコマンドの実行履歴と詳細説明を行います。
なお動作検証に利用したのは、AWS にて CentOS7 と Ubuntu18.04 です。
ではまずはベーシック認証のモジュールをインストールします。設定手順やコマンドはほぼ同じですが、インストールするモジュールが環境により異なります。
CentOS7 の場合の実行履歴
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@hostname]# yum install -y httpd-tools Loaded plugins: fastestmirror Determining fastest mirrors * base: ftp-srv2.kddilabs.jp * extras: ftp-srv2.kddilabs.jp * updates: ftp-srv2.kddilabs.jp base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/2): updates/7/x86_64/primary_db | 3.4 MB 00:00:00 (2/2): extras/7/x86_64/primary_db | 188 kB 00:00:00 Package httpd-tools-2.4.6-88.el7.centos.x86_64 already installed and latest version Nothing to do |
Ubuntu18.04 の場合の実行履歴
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
root@hostname:~# apt install apache2-utils Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libapr1 libaprutil1 The following NEW packages will be installed: apache2-utils libapr1 libaprutil1 0 upgraded, 3 newly installed, 0 to remove and 31 not upgraded. Need to get 259 kB of archives. After this operation, 863 kB of additional disk space will be used. (中略) Processing triggers for man-db (2.8.3-2ubuntu0.1) ... Setting up apache2-utils (2.4.29-1ubuntu4.6) ... Processing triggers for libc-bin (2.27-3ubuntu1) ... |
ベーシック認証を通過できるユーザーを登録します。サンプルの実行履歴では hoge ユーザーを追加しています。
ユーザー追加の実行履歴
1 2 3 4 5 6 |
root@hostname:~# htpasswd -c /etc/nginx/.htpasswd hoge New password: Re-type new password: Adding password for user hoge root@hostname:~# cat /etc/nginx/.htpasswd hoge:$apr1$DTYTMsYr$tw3FxQ2EAurYeVzRP5QKd. |
Nginx の設定ファイルにベーシック認証の設定を追加します。
ベーシック認証を設定したいパスに「auth_basic」と「auth_basic_user_file」を記述することにより、ベーシック認証が有効になります。サンプルではドメイン直下にベーシック認証を設定しています。
nginx に追加する内容
1 2 3 4 5 6 7 8 9 10 11 12 |
server { listen 80; server_name example.com; root /var/www/; index index.html index.htm; location / { auth_basic "Auth"; auth_basic_user_file "/etc/nginx/.htpasswd"; } } |
Nginx の設定を反映する前に、念のため Nginx の設定内容に誤りが無いかを確認します。
Nginx 設定ファイルの文法チェック
1 2 3 |
root@hostname:# nginx -t -c /etc/nginx/nginx.conf nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful |
最後に Nginx を再起動すればベーシック認証の設定完了です。
Nginx の再起動
お疲れさまでした。