ホームページ  >  記事  >  運用・保守  >  Nginx リバースプロキシでの SSL 証明書の監視

Nginx リバースプロキシでの SSL 証明書の監視

WBOY
WBOYオリジナル
2023-06-10 10:52:401437ブラウズ

Nginx は、高性能 Web サーバーおよびリバース プロキシ サーバーです。安定性と信頼性が高いため、多くの大規模な Web サイトやアプリケーションで広く使用されています。 SSL (Secure Sockets Layer) 証明書は、クライアントとサーバー間でデータを安全に転送するために使用されるデジタル証明書です。 Nginx では、SSL 証明書の使用はリバース プロキシと密接に関連しています。この記事では、Nginx リバース プロキシでの SSL 証明書の使用とその監視について説明します。

Nginx リバース プロキシでの SSL 証明書の使用

Nginx では、リバース プロキシ サーバーはフロントエンド サーバーとして機能し、クライアントからリクエストを受信して​​バックエンド サーバーに転送します。 Nginx がリバース プロキシ サーバーとして機能する場合、SSL 接続の暗号化と復号化にも使用できます。これには SSL 証明書の使用が必要です。

Nginx で SSL 証明書を構成するには、まず SSL 証明書を生成する必要があります。証明書は、OpenSSL、ACME Client、Certbot などのさまざまなツールを使用して生成できます。ここでは、例として OpenSSL を使用して証明書を生成します。

OpenSSL を使用して SSL 証明書を生成する

OpenSSL を使用して SSL 証明書を生成する前に、サーバーに OpenSSL をインストールする必要があります。次のコマンドを使用して、OpenSSL がインストールされているかどうかを確認できます。

openssl version

OpenSSL のバージョン情報が返された場合は、インストールされていることを意味します。インストールされていない場合は、次のコマンドを使用してインストールできます:

sudo apt-get update
sudo apt-get install openssl

インストールが完了したら、次のコマンドを使用して証明書を生成できます:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

このコマンドは、証明書を生成します。 365 日間有効な自己証明書 SSL 証明書に署名し、/etc/nginx/ssl ディレクトリに保存します。このうち、nginx.key は秘密鍵ファイル、nginx.crt は証明書ファイルです。

Nginx での SSL 証明書の構成

証明書が生成されたら、Nginx に構成できます。次の設定を Nginx 設定ファイルに追加できます。

server {
  listen 443 ssl;
  server_name example.com;

  ssl_certificate /etc/nginx/ssl/nginx.crt;
  ssl_certificate_key /etc/nginx/ssl/nginx.key;

  location / {
    proxy_pass http://localhost:8000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # This line enables HTTPS for the proxy
    proxy_ssl_verify                  on;
    proxy_ssl_certificate            /etc/nginx/ssl/nginx.crt;
    proxy_ssl_certificate_key        /etc/nginx/ssl/nginx.key;
    proxy_ssl_session_reuse          on;
  }
}

この設定は、Nginx がポート 443 で HTTPS 接続をリッスンし、生成された SSL 証明書を使用して接続を暗号化することを示します。また、クライアント要求を http://localhost:8000 に転送するリバース プロキシも設定します。

SSL 証明書の監視

SSL 証明書の有効期間は限られています。証明書の有効期限が切れると、証明書は無効になり、Web サイトが安全でなくなります。したがって、Nginx リバース プロキシで使用される SSL 証明書を監視して、証明書の有効期間を確認する必要があります。

次に、SSL 証明書監視の一般的な方法をいくつか示します:

1. 証明書の有効期限を表示する

次のコマンドを使用して、SSL 証明書の有効期限を表示できます。証明書:

echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -dates

ここで、example.com は Web サイトのドメイン名です。このコマンドは、証明書の開始日と有効期限を出力します。

2. Nagios モニタリング

Nagios は、サーバー、アプリケーション、およびネットワーク サービスの監視に役立つ包括的な監視ソリューションです。 SSL 証明書の有効期限を監視することもできます。 Nagios を使用して SSL 証明書を監視するには、Nagios と Nagios 用の SSL 証明書監視プラグインをインストールする必要があります。

3. Let's Encrypt

Let's Encrypt は、Nginx リバース プロキシの SSL 証明書を簡単に構成できる無料の SSL 認証局です。さらに、Let's Encrypt 証明書の有効期間は 90 日間であるため、証明書を定期的に更新する必要があります。

Let's Encrypt を使用して SSL 証明書を取得するには、Certbot をインストールする必要があります。 Certbot をインストールした後、次のコマンドを実行して証明書を取得できます。

sudo certbot certonly --webroot -w /var/www/example.com -d example.com

ここで、/var/www/example.com は Web サイトのルート ディレクトリ、example.com は Web サイトのドメイン名です。 Webサイト。 Certbot はサーバー上で自動的に検証し、証明書を発行します。

結論

この記事では、Nginx リバースプロキシにおける SSL 証明書の使用方法と監視方法を紹介します。 SSL 証明書を使用する場合は、証明書の有効期限を定期的に確認する必要があります。 Nagios モニタリングまたは Let's Encrypt を使用して証明書を自動的に更新することで、証明書が常に有効であることを確認できます。 SSL 証明書の監視は、Web サイトと顧客データを保護するための重要なステップです。

以上がNginx リバースプロキシでの SSL 証明書の監視の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。