ホーム テクノロジー NGINX Apache、Nginx、WordPress、ホスティングでページをパスワードで保護するにはどうすればよいですか?

Apache、Nginx、WordPress、ホスティングでページをパスワードで保護するにはどうすればよいですか?


パスワードで保護したい機密ページがあるかもしれません。これは基本認証とも呼ばれます。

幸いなことに、それは可能であり、非常に簡単です。

Web ページをパスワードで保護する必要があるのはなぜですか?

まあ、いろいろな理由が考えられますが、

  • ページに機密データが含まれている
  • ページの準備ができていないため、一般公開せずに誰かと共有したいと考えています。

それが何であれ、どうすれば保護できるかを検討してみましょう。

要件

例を挙げてみましょう。 lab..com の/client保護したいと考えています。つまり、誰かがhttps://lab..com/clientにアクセスすると、パスワードの入力を求める必要があります。

アパッチ

まずはApacheから始めましょう。

最初に作成する必要があるのは、すべての資格情報が保存されるパスワード ファイルです。ファイル名は.htpasswdとなり、サーバー上のどこにでも配置できます。 /etc/httpd/confフォルダーの下に作成します

  • touchコマンドでファイルを作成できます
touch /etc/httpd/conf/.htpasswd
  • /client へのアクセスを許可するユーザーを追加しましょう。これにはhtpasswdコマンドを使用する必要があります。
 htpasswd /etc/httpd/conf/.htpasswd 
  • 最後のセクション はユーザー名です。これを必要に応じて変更し、Enter キーを押します。
  • パスワードを入力すると、ユーザーが追加されたことを確認するメッセージが表示されます。
 [root@lab html]# htpasswd /etc/httpd/conf/.htpasswd 
New password: 
Re-type new password: 
Adding password for user 
[root@lab html]#

ファイルを cat すると、パスワードが暗号化された形式で保存されていることがわかります。いいですね!

 [root@lab html]# cat /etc/httpd/conf/.htpasswd 
:$apr1$EHvl0Bc5$nh4u0w3.Cj3wzPT7XUXqW1
[root@lab html]#

次に、必要な URI を保護するように Apache に指示する必要があります。

  • Apache インスタンスに使用している httpd.conf ファイルまたは設定ファイルを変更します。私はデフォルトのインストールを使用しているため、/etc/httpd/conf/httpd.conf を使用しています。
  • ファイル内の任意の場所に以下を追加します
<Directory "/var/www/html/client">
Options Indexes FollowSymLinks
AuthType Basic
AuthName "Protected Content for Client"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
</Directory>

すでに/var/www/html/clientディレクトリ ディレクティブがある場合は、新しいセクションを追加する代わりに、既存のディレクティブに次の内容を追加するだけです。

 AuthType Basic
AuthName "Protected Content"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
  • Apacheを再起動する
service httpd restart
  • /client ページにアクセスしようとすると、パスワードの入力を求められるはずです。
  • コンテンツを表示するには、前に設定した認証情報を入力します。

派手な.htaccessメソッド?

確かに、 .htaccessファイルを通じて基本認証を実装することもできます。上記で説明したように、 htpasswdを使用して資格情報を生成する必要があります。完了したら、それぞれのフォルダーの.htaccessファイルに次の内容を追加できます。

 AuthType Basic
AuthName "Protected Content"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user

利点は、Apache を再起動する必要がないことです。

Nginx

以下のようにNginxでBasic認証を実装してみましょう。

資格情報を生成するには、Apache Utils の助けを借ります。サーバーに Apache HTTP がインストールされていない場合は、以下のようにユーティリティを個別にインストールする必要があります。不明な場合は、 htpasswd実行して機能するかどうかを確認できます。そうでない場合は、インストールする必要があることがわかります。

CentOS/RHEL 8

 dnf install httpd-tools

CentOS/RHEL 7

 yum install httpd-tools

Ubuntu

 apt-get install apache2-utils
  • Apache で行ったのと同じように資格情報を作成しましょう。
 htpasswd -c /etc/nginx/.htpasswd chandan
  • Chandan を実際のユーザー名に置き換えることを忘れないでください

次に、特定の URI をパスワードで制限できるように Nginx を構成する必要があります。

  • /admin URI を保護する必要があると仮定しましょう
  • nginx.confまたは他のアクティブな Nginx 構成ファイルに以下を追加します
location /admin {
auth_basic "Admin Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
  • Nginxを再起動する

Nginx を介して提供される Web サイト全体を制限する必要がある場合はどうすればよいでしょうか?

簡単!

nginx.conf またはアクティブな設定ファイルのlocation / {ディレクティブに以下を追加します

auth_basic "Admin Area";
auth_basic_user_file /etc/nginx/.htpasswd;

サイトグラウンド

ホスティング プラットフォームは進化しました。便利なツールを提供するプラットフォームは数多くあり、SiteGround もその 1 つです。

SiteGround を使用して Web サイトをホストしている場合は、管理コンソールから URL を簡単に保護できます。 WordPress を使用していて、 /wp-admin保護する必要があると仮定します。

  • SiteGround にログインし、基本認証を有効にする必要があるサイトに移動します。
  • [セキュリティ] >> [保護された URL] >> [ユーザー] をクリックします。
  • 名前とパスワードを入力して認証情報を作成します

次に、作成した認証情報を使用して wp-admin を保護します。

  • 「URL」タブに移動します
  • パスに「wp-admin」と入力し、「保護」をクリックします。
  • 「アクセスの管理」をクリックし、作成したユーザーを割り当てます

ページにアクセスしようとすると、SiteGround によって資格情報の入力を求められます。

簡単ですね。

ワードプレス

WordPress を使用していて、特定の投稿、ページ、カテゴリ、役割ごと、またはサイト全体をパスワードで保護したいですか?

もちろん!

PPWP (パスワード保護 WordPress プラグイン) の紹介

プラグインをインストールし、WordPress リソースを保護する方法を設定します。これは、Elementor、Divi、Beaver などのページ ビルダーで機能します。

あるいは、単純なパスワードで保護された投稿またはページが必要な場合は、組み込みの WP 機能を利用できます。これにはプラグインは必要ありません。

  • パスワードを有効にしたい投稿またはページに移動します。
  • 「公開」セクションで、「公開設定: 公開」の横にある「編集」をクリックします。
  • 「パスワード保護」を選択し、パスワードを入力します。
  • 「OK」をクリックすれば準備完了です。

WordPress を保護するための他の方法が必要ですか?このガイドをご覧ください。

cパネル

共有ホスティングを使用している場合は、おそらく cPanel を使用しているでしょう。良いニュースは、cPanel が Directory Privacy と呼ばれるユーティリティを提供していることです。そこから、ディレクトリのパスワードを設定できます。

  • cPanelにログインする
  • ディレクトリのプライバシーを検索する
  • 保護したいフォルダーを選択します。以下のように、 public_html の下にあるchandanというフォルダーを選択しました。
  • 許可するユーザーを作成して保存します
  • 完了すると、フォルダーがロックされていることがわかります

以上です。現在、ディレクトリはパスワードで保護されています。上でわかるように、私はA2 ホスティングでテストしましたが、うまく機能しました。

結論

上記が、基本認証を使用して特定の URI、フォルダーをパスワードで保護するのに役立つことを願っています。包括的な Web サイトのセキュリティを求めている場合は、WAF の導入を検討する必要があります。

「 Apache、Nginx、WordPress、ホスティングでページをパスワードで保護するにはどうすればよいですか?」についてわかりやすく解説!絶対に観るべきベスト2動画

WEBサーバーの仕組み入門|ApacheやNginxなどWEBサーバーの基本を初心者向けに解説
WordPressで特定のページだけにJavaScriptやHTMLやPHPを入れる方法 – WPCodeの使い方