ホームページ  >  記事  >  運用・保守  >  Nginx が SSL/TLS 構成を実装する方法

Nginx が SSL/TLS 構成を実装する方法

WBOY
WBOYオリジナル
2023-11-08 09:36:22973ブラウズ

Nginx が SSL/TLS 構成を実装する方法

Nginx が SSL/TLS 構成を実装する方法には特定のコード例が必要です

情報セキュリティがますます重要になっている今日の時代では、Web サイトの暗号化は重要な問題となっています。ユーザーのプライバシーとデータの完全性を保護する重要な手段です。現在最も一般的に使用されている暗号化プロトコルである SSL/TLS プロトコルは、送信中のデータのセキュリティを確保できます。強力な Web サーバーとして、Nginx は SSL/TLS 構成を通じて Web サイトの暗号化された送信を実装することもできます。この記事では、Nginx が SSL/TLS 構成を実装する方法を詳しく紹介し、具体的なコード例を示します。

まず、サーバーに Nginx ソフトウェアをインストールし、構成ファイルで対応する SSL/TLS 構成を実行する必要があります。以下は、基本的な Nginx SSL/TLS 構成の例です。

server {
    listen 443 ssl;

    server_name yourdomain.com;

    ssl_certificate /path/to/your.ssl.crt;
    ssl_certificate_key /path/to/your.ssl.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    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:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:TLSv1.2:!ADH';

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

    location / {
        # 其他相关配置
    }
}

上記の構成では、まず listen 443 ssl; ディレクティブを使用して、443 ポートをリッスンする Nginx を定義し、有効にします。 SSL。次に、ssl_certificate ディレクティブと ssl_certificate_key ディレクティブを使用して、SSL 証明書と秘密キーへのパスをそれぞれ指定します。次に、ssl_protocols ディレクティブを使用して SSL/TLS プロトコルのバージョンを指定し、ssl_ciphers ディレクティブを使用して暗号化アルゴリズムの優先順位を指定し、ssl_session_cachessl_session_timeout ディレクティブ: SSL セッション キャッシュを構成します。

基本的な SSL/TLS 構成に加えて、SSL 証明書、HTTPS リダイレクトなどの最適化パラメーターをさらに構成することもできます。以下は、上記の最適化パラメーターと HTTPS リダイレクトを含む、完全な Nginx SSL/TLS 構成例です。

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

server {
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate /path/to/your.ssl.crt;
    ssl_certificate_key /path/to/your.ssl.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    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:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:TLSv1.2:!ADH';

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

    # 开启OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 10s;

    location / {
        # 其他相关配置
    }
}

完全な SSL/TLS 構成例では、 return 301 https:// も使用します。 $server_name$request_uri; HTTP リクエストの HTTPS へのリダイレクトを実装し、OCSP Stapling のサポートを追加しました。

上記の例の SSL 証明書、秘密キーのパス、ドメイン名は、実際の状況に応じて変更する必要があることに注意してください。さらに、SSL/TLS を構成する場合は、漏洩や改ざんを防ぐために、証明書と秘密キー ファイルのセキュリティの保護に注意する必要があります。

つまり、上記のサンプル コードを通じて、読者は Nginx で SSL/TLS 構成を実装する方法を理解し、実際の状況に応じて対応するカスタマイズされた構成を作成して、Web サイト データの安全な送信を確保できます。この記事が、Nginx SSL/TLS 構成に興味のある読者の役に立てば幸いです。また、ウェブサイトの暗号化セキュリティに注意を払い、ユーザーのプライバシーとデータのセキュリティを保護していただけることを願っています。

以上がNginx が SSL/TLS 構成を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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