ホームページ >運用・保守 >Nginx >Nginx の HTTPS 導入とセキュリティ パフォーマンスの最適化

Nginx の HTTPS 導入とセキュリティ パフォーマンスの最適化

WBOY
WBOYオリジナル
2023-06-10 17:13:401127ブラウズ

Nginx は、高性能 Web サーバーおよびリバース プロキシ サーバーとして、アプリケーションの展開と負荷分散に広く使用されています。セキュリティと環境保護への意識が徐々に向上するにつれて、HTTPS は最新の Web アプリケーションにも不可欠な部分になりました。この記事では、Nginx の HTTPS 導入とセキュリティ パフォーマンスの最適化に焦点を当てます。

1. Nginx の HTTPS デプロイメント

  1. 証明書アプリケーション

まず、認証局 (CA) にアクセスして SSL 証明書を申請する必要があります。 。アプリケーションが成功すると、証明書ファイル (.crt) と秘密キー ファイル (.key) を取得します。

  1. HTTPS 構成

Nginx の HTTPS 構成には、HTTPS への HTTP 転送、Nginx 証明書構成、および HTTPS 構成の 3 つの側面が含まれる必要があります。

(1) HTTP を HTTPS に転送する

Nginx 設定ファイルに、HTTP 設定のセクションを追加して、ユーザーが HTTP デフォルト ポート 80 にアクセスするときに自動的にジャンプできるようにする必要があります。ポート 443 のデフォルトの HTTPS。

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

(2) Nginx 証明書の設定

Nginx 設定ファイルでは、先ほど申請した SSL 証明書と秘密鍵ファイルを設定ファイルに追加する必要があります。

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/cert.crt;
    ssl_certificate_key /path/to/cert.key;
    ...
}

(3) HTTPS 構成

HTTP/2 プロトコルの有効化、SSLv3 の無効化など、HTTPS プロトコルの特定のオプションを構成する必要があります。

http2_push_preload on;  #启用HTTP/2协议的推送预加载
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  #指定启用的TLS协议版本
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;  #指定加密套件
ssl_prefer_server_ciphers on;  #常用加密套件优先顺序为服务端指定的值
ssl_session_cache shared:SSL:10m;  #指定SSL session缓存
ssl_session_timeout 10m;  #指定SSL session超时时间

2. Nginx セキュリティ パフォーマンスの最適化

HTTPS サービスをデプロイした後、サービスの安定性とセキュリティを確保するために、次のセキュリティ パフォーマンスの最適化の問題にも注意する必要があります:

  1. OCSP 応答の検出

OCSP (オンライン証明書ステータス プロトコル) は、証明書が失効したかどうかを検出するために使用されます。 Nginx の HTTPS 構成では、OCSP 応答の検出は次のプログラムを通じて実行できます:

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/fullchain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;

重要なポイントは次のように解釈されます:

  • ssl_stapling on OCSP 応答をオンにする
  • ssl_stapling_verify on OCSP 応答検証をオンにする
  • #ssl_trusted_certificate /path/to/fullchain.pem 証明書チェーンを構成する
  • #resolver 8.8.8.8 8.8.4.4 valid=300s DNS リゾルバーを構成する
  • resolver_timeout 10s DNS 解決時間を構成する
  • DNS リゾルバーは、認識された信頼できるリゾルバーとして構成する必要があります。ここでは、Google パブリック DNS として構成されています。

HSTS を有効にする
  1. HSTS (HTTP Strict Transport Security) は、ユーザーが HTTP ページにハイジャックされるのを防ぎ、セキュリティ レベルを高めます。 Nginx の HTTPS 構成では、次のように HSTS を有効にできます:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

重要なポイントは次のように解釈されます:

max-age=31536000 HSTS ヘッダーの長さを定義します
  • includeSubDomains すべてのサブドメインを有効にする
セキュリティ プロトコルを有効にする
  1. デフォルトでは、Nginx は、他のものを有効にする必要がある場合、TLSv1 と TLSv1.2 のみを有効にします。暗号化プロトコルは次の方法で構成できます:
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;

重要なポイントは次のように解釈されます:

TLSv1.3 は有効な暗号化プロトコルを定義します
HMAC キー アルゴリズムを有効にする
  1. HTTPS 経由で送信されるデータには、データを暗号化するためのキーが必要です。HMAC (ハッシュベースのメッセージ認証コード) を使用すると、データ送信のセキュリティが向上します。 Nginx 設定ファイルで HMAC を有効にする方法は次のとおりです。
ssl_ciphers ... !aNULL !eNULL !EXPORT !CAMELLIA !DES !MD5 !PSK !RC4 !SEED +AES256 !kEDH +SHA256 +HMAC;

重要なポイントは次のように解釈されます。

AES256 AES256 暗号化アルゴリズムを有効にする
  • SHA256 SHA256 ハッシュ関数を有効にする
  • HMAC HMAC キー アルゴリズムを有効にする
  • 結論

この記事では、Nginx HTTPS の展開とセキュリティ パフォーマンスの最適化に関する主な知識ポイントを紹介します。最新の Web アプリケーションがますます複雑になる中、HTTPS のセキュリティとパフォーマンスの要件もますます高くなっています。システム マネージャーとして、知識の蓄えを常に更新し、新しいテクノロジと新しい環境に対する専門的なビジョンを維持することが重要です。 . 非常に必要で重要です。

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

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