ホームページ  >  記事  >  運用・保守  >  Nginx の SSL ハンドシェイクと証明書チェーンのセキュリティ パフォーマンスの最適化

Nginx の SSL ハンドシェイクと証明書チェーンのセキュリティ パフォーマンスの最適化

PHPz
PHPzオリジナル
2023-06-11 18:34:401309ブラウズ

インターネットの発展に伴い、Web サイト、特にユーザーのプライバシーや機密情報に関わる Web サイトのセキュリティにますます注目が集まるようになりました。 SSL 証明書は、Web サイトのセキュリティを確保するための重要な手段の 1 つとなっています。 Nginx は高性能 Web サーバーとして、SSL 証明書もサポートしています。この記事では、Nginx の SSL ハンドシェイクと証明書チェーンを最適化して Web サイトのセキュリティ パフォーマンスを向上させる方法を紹介します。

  1. SSL ハンドシェイク

SSL ハンドシェイクは SSL/TLS プロトコルの非常に重要な部分であり、クライアントとサーバー間の通信の安全性を確保します。 Nginx の SSL ハンドシェイク サポートの最適化は、次の 2 つの方法で実現できます。

1.1 SSL セッションの再利用を有効にする

SSL セッションの再利用は、SSL セッションを保存することで SSL ハンドシェイクを改善する方法です。 IDとキー、効率化テクノロジー。 SSL ハンドシェイク プロセス中に、クライアントとサーバーは証明書を交換し、暗号化キーのネゴシエーションやその他の操作を実行する必要があり、これらの操作には多くの時間とリソースがかかります。 SSL セッションの再利用を有効にすると、クライアントとサーバーは、後続の SSL ハンドシェイク プロセスで以前に確立された SSL 接続を直接使用できるようになり、キーの計算とハンドシェイク操作の繰り返しが回避され、SSL ハンドシェイクの効率が向上します。

Nginx で SSL セッションの再利用を有効にするのは非常に簡単です。SSL 構成ブロックに次の命令を追加するだけです:

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;

その中で、 ssl_session_cache は、そのメソッドと名前を指定します。 SSL セッション キャッシュ (ここでは、共有メモリ キャッシュが使用され、10M のキャッシュ サイズが指定されています)。 ssl_session_timeout は SSL セッションの有効期限を指定します。ここでは 5 分に設定されています。

1.2 適切な SSL 暗号化スイートの選択

SSL ハンドシェイク プロセス中に、クライアントとサーバーは通信データのセキュリティを保護するための暗号化アルゴリズムを選択する必要があります。暗号化アルゴリズムが異なればセキュリティと効率も異なるため、適切な SSL 暗号化スイートを選択すると、SSL ハンドシェイクの効率とセキュリティを向上させることができます。

Nginx では、ssl_ciphers ディレクティブを使用して SSL 暗号スイートを指定できます。例:

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA;

ここでは、ECDHE、DHE、およびAES暗号化アルゴリズム。

  1. 証明書チェーン

SSL 証明書は HTTPS 接続を確立するための重要な部分であり、証明書チェーンは SSL 証明書検証の鍵の 1 つです。証明書チェーンのセキュリティを向上させるために、Nginx は次の 2 つの最適化方法をサポートしています。

2.1 HTTP/2 プロトコルの使用

HTTP/2 プロトコルは、トランスポート層で TLS/SSL プロトコルを使用し、TLS 暗号化を直接有効にすることができる新しいネットワーク プロトコルです。 HTTP/2 プロトコルを使用すると、中間者攻撃や SSL 証明書の改ざんを回避でき、証明書チェーンのセキュリティがさらに向上します。

Nginx では、HTTP/2 プロトコルを有効にするのは非常に簡単です。SSL 構成ブロックに次の命令を追加するだけです:

listen 443 ssl http2;

その中で、http2 はサーバーがHTTP/2 プロトコル。

2.2 証明書チェーンのインストール

SSL 証明書はデジタル認証局 (CA) によって発行され、証明書チェーンには SSL 認証局の証明書と、証明書を証明できる中間証明書などが含まれます。 SSL 証明書の信頼性と完全性。証明書チェーンのセキュリティを強化するには、完全な証明書チェーンをサーバーにインストールすることをお勧めします。

Nginx への証明書チェーンのインストールは非常に簡単です。指定された場所に証明書チェーン ファイルを置くだけです:

ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;

その中で、fullchain.pem は完全な証明書チェーン ファイルです。 privkey.pem は SSL 証明書の秘密キー ファイルです。

つまり、Nginx の SSL ハンドシェイクと証明書チェーンは、Web サイトのセキュリティを確保するための非常に重要なコンポーネントです。SSL ハンドシェイクと証明書チェーンを最適化することで、Web サイトのセキュリティ パフォーマンスを向上させ、man-in-the-中間攻撃やSSL証明書偽造などの脅威にさらされています。

以上がNginx の SSL ハンドシェイクと証明書チェーンのセキュリティ パフォーマンスの最適化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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