CentOS 7でNginxを使用して基本HTTP認証を設定する方法

前書き

Nginxはアクティブに使用されている主要なWebサーバーの1つです。 それとその商用版であるNginx Plusは、Nginx、Incによって開発されました。

このチュートリアルでは、Ubuntu 14.04でHTTP基本認証方法を使用して、Nginxを使用したWebサイトへのアクセスを制限する方法を学習します。 HTTP基本認証は、単純なユーザー名と(ハッシュされた)パスワード認証方法です。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • https://www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7 [この初期サーバーセットアップチュートリアルに従ってセットアップできるsudo非ルートユーザーを含む1つのCentOS 7ドロップレット]。

  • サーバーにインストールおよび構成されたNginxは、https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7 [このNginxインストールチュートリアル]に従って実行できます。

ステップ1-HTTPDツールのインストール

ターゲットWebサイトへのアクセスを制限するパスワードを設定するには、「+ htpassword 」コマンドが必要です。 このコマンドは ` httpd-tools +`パッケージの一部であるため、最初のステップはそのパッケージをインストールすることです。

sudo yum install -y httpd-tools

ステップ2-HTTP基本認証資格情報のセットアップ

この手順では、ウェブサイトを実行しているユーザーのパスワードを作成します。

そのパスワードと関連するユーザー名は、指定したファイルに保存されます。 パスワードは暗号化され、ファイルの名前は好きなものにすることができます。 ここでは、ファイル `+ / etc / nginx / .htpasswd +`とユーザー名* nginx *を使用します。

パスワードを作成するには、次のコマンドを実行します。

sudo htpasswd -c /etc/nginx/.htpasswd nginx

新しく作成されたファイルの内容を確認して、ユーザー名とハッシュ化されたパスワードを確認できます。

cat /etc/nginx/.htpasswd

例/etc/nginx/.htpasswd

nginx:$apr1$ilgq7ZEO$OarDX15gjKAxuxzv0JTrO/

ステップ3-Nginx構成の更新

HTTP基本認証資格情報を作成したので、次のステップは、ターゲットWebサイトのNginx構成を更新してそれを使用することです。

HTTP基本認証は、 `+ auth_basic `および ` auth_basic_user_file `ディレクティブによって可能になります。 ` auth_basic `の値は任意の文字列であり、認証プロンプトに表示されます。 ` auth_basic_user_file +`の値は、ステップ2で作成されたパスワードファイルへのパスです。

両方のディレクティブは、通常は「+ / etc / nginx / 」ディレクトリにあるターゲットWebサイトの設定ファイルにある必要があります。 ` nano +`またはお気に入りのテキストエディターを使用してそのファイルを開きます。

sudo nano /etc/nginx/nginx.conf
  • server *セクションの下に、両方のディレクティブを追加します。

/etc/nginx/nginx.conf

. . .
server {
   listen       80 default_server;
   listen       [::]:80 default_server;
   server_name  _;
   root         /usr/share/nginx/html;



. . .

ファイルを保存して閉じます。

ステップ4-セットアップのテスト

変更を適用するには、まずNginxをリロードします。

sudo systemctl reload nginx

次に、お気に入りのブラウザで「+ http:/// 」に移動して、保護したばかりのWebサイトにアクセスしてみます。 認証ウィンドウ(「プライベートプロパティ」、「 auth_basic +」に設定した文字列)が表示され、正しい資格情報を入力するまでWebサイトにアクセスできません。 設定したユーザー名とパスワードを入力すると、デフォルトのNginxホームページが表示されます。

結論

Nginxウェブサイトの基本的なアクセス制限を完了しました。 この手法とアクセス制限のその他の手段に関する詳細は、https://www.nginx.com/resources/admin-guide/restricting-access/ [Nginxのドキュメント]で入手できます。

Related