75
7.4 クライアント側の暗号化(応用)
問題
高度なクライアントサーバー暗号化構成のニーズがあります。
解決法
NGINXのhttpおよびstreamSSLモ ジ ュ ー ル に よ り 、受 け 入 れ ら れ た SSL/TLSハンドシェ
イクを完全にコントロールできます。証明書とキーは、ファイルパスまたは変数値を介し
てNGINXに提 供 できます。NGINXは、構成ごとに、受け入れられたプロトコル、暗号、
キータイプのリストをクライアントに提 示します。クライアントとNGINXサーバー間の
最高水準がネゴシエートされます。NGINXは、クライアントサーバーのSSL/TLSネゴシ
エーションの結果を一定期間キャッシュできます。
以 下 で は 、ク ラ イ ア ン ト /サーバーネゴシエーションの利用可能な複雑さを説明する目
的 で、一 度 に多くの オプション を意 図 的 に 示しています。
http { # All directives used below are also valid in stream
server {
listen 8443 ssl;
# Set accepted protocol and cipher
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# RSA certificate chain loaded from file
ssl_certificate /etc/nginx/ssl/example.crt;
# RSA encryption key loaded from file
ssl_certificate_key /etc/nginx/ssl/example.pem;
# Elliptic curve cert from variable value
ssl_certificate $ecdsa_cert;
# Elliptic curve key as file path variable
ssl_certificate_key data:$ecdsa_key_path;
# Client-Server negotiation caching
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
}
}
サーバーは、SSLプ ロトコルバージョン TLSv1.2およびTLSv1.3を受け入れます。受け入れ
られる暗号はHIGHに設 定されます。これは最 高水 準のマクロです。明 示 的な拒 否は!
マークでaNULLおよびMD5に 示されます。
2セットの 証 明 書 とキー の ペ ア が 使 用され ます。NGINXディレ クティブに 渡される値
は、NGINX証明書キー値を提供するさまざまな方法を示します。変数はファイルへ
のパ スとして 解 釈さ れます。data:プレフィックス が 付 いてい る 場 合 は 直 接 値として 解
釈されます。クライアントに下位互換性を提供するために、複数の証明書キー形式が
7.4 クライアント側の暗号化(応用) |