Nginx は、Web サイトのアーキテクチャを簡素化し、ネットワーク リクエストを最適化するために使用できる高性能 HTTP サーバーおよびリバース プロキシ サーバーです。リバース プロキシ プロセス中、セキュリティ証明書と TLS の最適化は、Web サイトのセキュリティとパフォーマンスを向上させる重要な要素です。この記事では、Nginx リバース プロキシにおけるセキュリティ証明書と TLS 最適化に関する関連知識を紹介します。
1. セキュリティ証明書
1.1 セキュリティ証明書とは何ですか?
セキュリティ証明書は、Web サイトにアクセスする際の認証、データ暗号化、データ整合性保護に使用されるデジタル証明書です。一般的なセキュリティ証明書には、ネットワーク通信のセキュリティを確保できる SSL 証明書と TLS 証明書が含まれます。クライアントが HTTPS プロトコルを介してサーバーにアクセスすると、サーバーは自動的にセキュリティ証明書をクライアントに表示します。証明書が信頼できる場合は、通信を継続するために安全なチャネルが確立されます。そうでない場合、クライアントはユーザーに Web サイトを確認するよう要求します。危険なので接続を拒否します。
1.2 セキュリティ証明書の種類
セキュリティ証明書を展開するときは、ビジネス ニーズを満たす適切な証明書の種類を選択する必要があります。現在主流のセキュリティ証明書には次のものがあります。
自己署名証明書: 自分で作成した認証局によって発行されるセキュリティ証明書であり、第三者検証機関による認証を必要としません。しかし、自己署名証明書は、クライアント Web サイトが第三者によって信頼されていないために危険にさらされていることを示している可能性があります。
DV 証明書: ドメイン名検証証明書。ドメイン名の所有権のみを検証する必要があり、電子メールまたはドメイン ネーム システム (DNS) によって検証されます。 DV 証明書は迅速に発行できるため、個人の Web サイトや中小企業でよく使用されます。
OV 証明書: 組織検証証明書。Web サイトの組織または企業情報の検証と電話または FAX による証明が必要です。 OV 証明書は DV 証明書よりも安全で信頼性が高く、通常は中小企業や電子商取引 Web サイトで使用されます。
EV証明書:最高レベルのセキュリティ証明書である強化認証証明書です。Webサイトの企業情報を認証する必要があります。電子メールと電話で認証できます。同時に、企業の公式文書も必要です。確認のために提出する必要があります。 EV 証明書の検証プロセスは比較的厳格であるため、Web サイトの信頼性とセキュリティを向上させることができます。
1.3 セキュリティ証明書の展開
Nginx リバース プロキシ サーバーを使用する場合、セキュリティ証明書の展開はネットワーク セキュリティを確保するための重要な手順です。その中で最もよく使われるセキュリティ証明書はSSL証明書です。セキュリティ証明書を展開する手順は次のとおりです。
ステップ 1: openssl、libssl-dev、libssl-dev などの証明書関連ソフトウェアをサーバーにインストールします。
ステップ 2: 証明書、秘密キー、および証明書署名要求 (CSR) を生成する 証明書署名要求は、認証のためにデジタル証明書発行局に送信する必要があります。
ステップ 3: 発行機関が CSR に署名して確認すると、SSL 証明書が返されます。この証明書は openssl を使用して検証できます。
ステップ 4: ssl_certificate や ssl_certificate_key など、Nginx 構成ファイルでセキュリティ証明書関連のパラメーターを設定します。証明書のパスを指定する必要があることに注意してください。
ステップ 5: Nginx サーバーをリロードし、証明書が有効になっているかどうかを確認します。
2. TLS の最適化
2.1 TLS とは何ですか?
TLS は、SSL の後継バージョンである Transport Layer Security Protocol で、ネットワーク通信を安全に暗号化および認証するために使用されます。 TLS プロトコルは、ネットワーク通信の主要なセキュリティ、データの整合性、認証を保証し、中間者攻撃、盗聴、改ざんなどのネットワーク セキュリティの問題を防ぐことができます。 TLS プロトコルは HTTPS プロトコルの中核であり、ネットワーク通信のセキュリティと安定性を向上させることができます。
2.2 TLS 最適化ソリューション
Nginx リバース プロキシでは、TLS プロトコルの最適化によって HTTPS プロトコルの効率とパフォーマンスを向上させることができます。一般的に使用される TLS 最適化ソリューションは次のとおりです。
TLS プロトコルの SNI 拡張を有効にする: SNI 拡張は、同じサーバー上で複数の SSL 証明書を使用するための TLS プロトコル拡張であり、同じ IP アドレスを共有する複数のドメイン名をサポートできます。 、サーバーの効率と柔軟性が向上します。
安全でないプロトコル バージョンをオフにする: たとえば、SSL 2.0、SSL 3.0、TLS 1.0 およびその他のプロトコル バージョン。これらのプロトコルにはセキュリティ上の問題があり、安全でないプロトコルとして分類されています。これらをオフにすると、セキュリティとパフォーマンスが向上します。
TLS プロトコルのセッション再開を有効にする: セッション再開は、クライアントとサーバー間で以前に交換されたキーを共有することで暗号化通信を高速化する TLS プロトコルの最適化機能です。
OCSP Stapling を有効にする: OCSP Stapling は、SSL 証明書のステータスを迅速に確認するために使用される TLS プロトコル拡張機能です。SSL 証明書の失効や偽造を防ぎ、ネットワークのセキュリティと速度を向上させることができます。
TLS プロトコルの Perfect Forward Secrecy (PFS) を有効にする: PFS は、セッションごとに一意のキーを生成できる安全で信頼性の高いキー合意メカニズムであり、クラッキングの難易度とセキュリティを高めます。
2.3 TLS 最適化の実装
Nginx リバース プロキシでは、設定ファイルに ssl_prefer_server_ciphers on および ssl_ciphers パラメータを追加することで TLS 最適化を実現できます。一般的な構成例をいくつか示します。
TLS プロトコルの SNI 拡張機能を有効にします:
server {
listen 443 ssl; server_name example.com; ssl_certificate /path/to/certificate.crt; ssl_certificate_key /path/to/private.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; # Other configurations
}
安全でないプロトコル バージョンをオフにします。
ssl_protocols TLSv1.2 TLSv1.3;
TLS プロトコルのセッション再開を有効にする:
ssl_session_cache 共有:SSL:10m;
ssl_session_tickets off;
OCSP ステープリングを有効にする:
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/trusted.crt;
PFS を有効にする:
ssl_ecdh_curve secp384r1;
上記の構成により、TLS プロトコルが最適化され、ネットワーク通信のパフォーマンスとセキュリティが向上します。 Nginx リバース プロキシを展開するときは、リバース プロキシ サーバーのセキュリティとネットワーク パフォーマンスを向上させるために、セキュリティ証明書と TLS プロトコルの構成に必ず注意してください。
以上がNginx リバースプロキシにおけるセキュリティ証明書と TLS の最適化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。