SSLプロファイルインフラストラクチャ
SSLv3 および RC4 の実装の脆弱性により、ネットワーク接続のセキュリティ設定をネゴシエートするために最新の暗号とプロトコルを使用する必要性が強調されています。数千の SSL エンドポイントで SSLv3 を無効にするなど、設定への変更を実装するのは面倒なプロセスです。したがって、SSL エンドポイント設定の一部であった設定は、デフォルトの暗号とともに SSL プロファイルに移動されました。暗号サポートを含む設定の変更を実装するには、エンティティにバインドされているプロファイルを変更するだけで済みます。
デフォルトのフロントエンドおよびデフォルトのバックエンド SSL プロファイルには、古いプロファイルの一部であった設定に加えて、すべてのデフォルトの暗号と ECC カーブが含まれます。デフォルトプロファイルの出力例は、付録に記載されています。[Enable Default Profile] 操作では、既定のフロントエンドプロファイルがすべてのフロントエンドエンティティに自動的にバインドされ、既定のバックエンドプロファイルがすべてのバックエンドエンティティにバインドされます。デフォルトのプロファイルは、デプロイメントに合わせて変更できます。カスタムプロファイルを作成し、SSL エンティティにバインドすることもできます。
フロントエンドプロファイルには、フロントエンドエンティティに適用可能なパラメータが含まれています。つまり、クライアントからの要求を受信するエンティティに適用されます。通常、このエンティティはCitrix ADCアプライアンス上のSSL仮想サーバーまたは透過SSLサービスです。バックエンドプロファイルには、バックエンドエンティティに適用可能なパラメーターが含まれています。つまり、クライアント要求をバックエンドサーバーに送信する ADC アプライアンス上のエンティティに適用されます。通常、このエンティティはCitrix ADCアプライアンス上のSSLサービスです。サポートされていないパラメータを設定しようとすると、エラーERROR: Specified parameters are not applicable for this type of SSL profile
が表示されます。
重要:
アップグレード後、デフォルトプロファイルを有効にすると、変更を元に戻すことはできません。つまり、プロファイルを無効にすることはできません。プロファイルを有効にする前に、構成を保存し、構成ファイル(ns.conf)のコピーを作成します。ただし、デフォルトプロファイルの機能を使用しない場合は、引き続き古い SSL プロファイルを使用できます。これらのプロファイルの詳細については、レガシー SSL プロファイルを参照してください。
リリース 11.1 51.x 以降、GUI および CLI で、デフォルトプロファイルを有効にすると、誤って有効にならないように確認プロンプトが追加されます。
コマンド:
set ssl parameter -defaultProfile ENABLED
Save your configuration before enabling the Default profile. You cannot undo the changes. Are you sure you want to enable the Default profile? [Y/N]Y
Done
デフォルトでは、 グローバルパラメータと呼ばれる一部の SSL パラメータは、すべての SSL エンドポイントに適用されます。ただし、プロファイルが SSL エンドポイントにバインドされている場合、グローバルパラメータは適用されません。プロファイルに指定された設定が代わりに適用されます。
注意点
- 1 つのプロファイルを複数の仮想サーバにバインドできますが、1 つの仮想サーバにバインドできるプロファイルは 1 つだけです。
- 仮想サーバーにバインドされているプロファイルを削除するには、まずプロファイルのバインドを解除します。
- 暗号グループまたは暗号グループは、異なる優先順位で複数のプロファイルにバインドできます。
- プロファイルは、異なる優先順位でバインドされた複数の暗号および暗号グループを持つことができます。
- 暗号グループへの変更は、すべてのプロファイルとプロファイルのいずれかがバインドされているすべての仮想サーバーに即座に反映されます。
- 暗号スイートが暗号グループの一部である場合、プロファイルから暗号スイートを削除する前に、暗号グループを編集してその暗号スイートを削除します。
- プロファイルにアタッチされている暗号スイートまたは暗号グループにプライオリティを割り当てない場合は、プロファイル内で最も低いプライオリティが割り当てられます。
- 既存の暗号グループおよび暗号スイートからカスタム暗号グループ(ユーザ定義暗号グループとも呼ばれる)を作成できます。暗号グループ A を作成し、既存の暗号グループ X と Y をこの順序で追加すると、Y は X よりも低い優先順位で割り当てられます。つまり、最初に追加されるグループの優先順位が高くなります。
- 暗号スイートが同じプロファイルにアタッチされている 2 つの暗号グループの一部である場合、その暗号スイートは 2 番目の暗号グループの一部として追加されません。トラフィックが処理されると、プライオリティの高い暗号スイートが有効になります。
- 暗号グループは、プロファイル内で展開されません。その結果、構成ファイル (ns.conf) の行数が大幅に削減されます。たとえば、それぞれ 15 個の暗号を含む 2 つの暗号グループが 1000 個の SSL 仮想サーバにバインドされている場合、拡張は設定ファイルに 30*1000 個の暗号関連のエントリを追加します。新しいプロファイルでは、プロファイルにバインドされた暗号グループごとに 1 つずつ、2 つのエントリしかありません。
- 既存の暗号および暗号グループからユーザー定義暗号グループを作成することは、コピー&ペースト操作です。元のグループの変更は、新しいグループに反映されません。
- ユーザ定義の暗号グループには、それが属するすべてのプロファイルがリストされます。
- プロファイルには、バインドされているすべての SSL 仮想サーバ、サービス、およびサービスグループが一覧表示されます。
- デフォルトの SSL プロファイル機能が有効になっている場合は、プロファイルを使用して SSL エンティティの属性を設定または変更します。たとえば、仮想サーバー、サービス、サービスグループ、または内部サービスなどです。
CLI を使用して設定を保存する
コマンドプロンプトで、次のように入力します。
save config
shell
root@ns# cd /nsconfig
root@ns# cp ns.conf ns.conf.NS<currentreleasenumber><currentbuildnumber>
例:
save config
shell
root@ns# cd /nsconfig
root@ns# cp ns.conf ns.conf.NS.11.0.jun.16
既定のプロファイルを有効にする
重要:
ソフトウェアをアップグレードし、デフォルトプロファイルを有効にする前に、設定を保存します。
リリース 11.1 ビルド 51.x から、GUI および CLI で、デフォルトプロファイルを有効にすると、誤って有効にしないように確認プロンプトが表示されます。
コマンド: 次のコマンドは、デフォルトのプロファイルを有効にし、プロファイルが既にバインドされている SSL エンティティにこのプロファイルをバインドします。つまり、プロファイル(P1 など)がすでに SSL エンティティにバインドされている場合、P1 はデフォルトのフロントエンドプロファイルまたはデフォルトのバックエンドプロファイルに置き換えられます。古いプロファイル (P1) は削除されません。これで、拡張 SSL プロファイルになり、以前の設定、および暗号と ECC カーブが含まれています。デフォルトプロファイルを使用しない場合は、P1 を SSL エンティティに明示的にバインドできます。
set ssl parameter -defaultProfile ENABLED
Save your configuration before enabling the Default profile. You cannot undo the changes. Are you sure you want to enable the Default profile? [Y/N]Y
Done
拡張プロファイルインフラストラクチャをサポートするビルドにソフトウェアをアップグレードし、既定のプロファイルを有効にします。
注:
レガシープロファイル(P1)がすでに SSL エンティティにバインドされていて、デフォルトプロファイルを有効にすると、デフォルトプロファイルによって以前のバインディングが上書きされます。つまり、デフォルトのプロファイルは SSL エンティティにバインドされます。デフォルトプロファイルをバインドしない場合は、P1 を SSL エンティティに再度バインドする必要があります。
1 回の操作 ([Enable Default Profile] または
set ssl parameter -defaultProfile ENABLED
) で、既定のフロントエンドプロファイルと既定のバックエンドプロファイルの両方が有効になります (バインド)。
使用例
デフォルトプロファイルを有効にすると、すべての SSL エンドポイントにバインドされます。既定のプロファイルは編集可能です。展開でほとんどのデフォルト設定が使用され、少数のパラメータしか変更されない場合は、デフォルトのプロファイルを編集できます。変更内容は、すべてのエンドポイントに即座に反映されます。カスタムパラメータとデフォルトパラメータを含むカスタム SSL プロファイルを作成し、SSL エンティティにバインドすることもできます。
次のフローチャートでは、実行する必要がある手順について説明します。
-
ソフトウェアのアップグレードについては、システムソフトウェアのアップグレードを参照してください。
-
CLI または GUI を使用して、デフォルトプロファイルを有効にします。
- コマンドラインで、次を入力します:
set ssl parameter -defaultProfile ENABLED
。 - GUI を使用する場合は、[トラフィック管理] > [SSL] > [高度な SSL設定の変更] に移動し、下にスクロールして [デフォルトプロファイルの有効化] を選択します。
アップグレード前にプロファイルがエンドポイントにバインドされていない場合、デフォルトプロファイルが SSL エンドポイントにバインドされます。アップグレード前にプロファイルがエンドポイントにバインドされている場合は、アップグレード後に同じプロファイルがバインドされ、デフォルトの暗号がプロファイルに追加されます。
- (オプション)デフォルトプロファイルの設定を手動で変更します。
- コマンドラインで、変更するパラメータに続けて
set ssl profile <name>
を入力します。 - GUI を使用する場合は、[システム] > [プロファイル] に移動します。「 SSLプロファイル」でプロファイルを選択し、「 編集」をクリックします。
SSL プロファイルパラメータ
SSL プロファイルでは、次の SSL パラメータを設定できます。これらのパラメータの一部は、SSL 仮想サーバーで設定できます。SSL 仮想サーバパラメータの詳細については、SSL 仮想サーバのパラメータを参照してください。
Citrix ADCアプライアンスのバックエンドでのセキュアな再ネゴシエーションのサポート
注: このパラメータは、リリース 13.0 ビルド 58.x 以降で導入されています。以前のリリースおよびビルドでは、セキュアでない再ネゴシエーションのみがバックエンドでサポートされていました。
この機能は、次のプラットフォームでサポートされています。
- VPX
- N2またはN3チップを含むMPXプラットフォーム
- インテル Coleto SSL チップベースのプラットフォーム
この機能は、FIPS プラットフォームではまだサポートされていません。
セキュアな再ネゴシエーションは、ADC アプライアンスのバックエンドでデフォルトで拒否されます。つまり、denySSLReneg
パラメータが ALL (デフォルト) に設定されます。
バックエンドでセキュアな再ネゴシエーションを許可するには、denySSLReneg
パラメータに対して次のいずれかの設定を選択します。
- いいえ
- FRONTEND_CLIENT
- FRONTEND_CLIENTSERVER
- NONSECURE
CLI を使用したセキュアな再ネゴシエーションの有効化
コマンドプロンプトで、次のように入力します。
set ssl profile <name> -denySSLReneg <denySSLReneg>
例:
set ssl profile ns_default_ssl_profile_backend -denySSLReneg NONSECURE
Done
sh ssl profile ns_default_ssl_profile_backend
1) Name: ns_default_ssl_profile_backend (Back-End)
SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED
Server Auth: DISABLED
Use only bound CA certificates: DISABLED
Strict CA checks: NO
Session Reuse: ENABLED Timeout: 300 seconds
DH: DISABLED
Ephemeral RSA: DISABLED
Deny SSL Renegotiation NONSECURE
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
SSL Redirect: DISABLED
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Push Encryption Trigger: Always
PUSH encryption trigger timeout: 1 ms
SNI: DISABLED
OCSP Stapling: DISABLED
Strict Host Header check for SNI enabled SSL sessions: NO
Push flag: 0x0 (Auto)
SSL quantum size: 8 kB
Encryption trigger timeout 100 mS
Encryption trigger packet count: 45
ECC Curve: P_256, P_384, P_224, P_521
1) Cipher Name: DEFAULT_BACKEND Priority :2
Description: Predefined Cipher Alias
1) Service Name: s187
Done
GUI を使用したセキュアな再ネゴシエーションの有効化
- [システム] > [プロファイル] > [SSL プロファイル] に移動します。
- プロファイルを追加または編集します。
-
[SSL 再ネゴシエーションの拒否] を [ALL] 以外の値に設定します。
ホストヘッダーの検証
注: このパラメータは、リリース 13.0 ビルド 52.x で導入されています。
HTTP/1.1 では、クライアントは複数の要求を処理するために複数の接続を使用する必要がありました。HTTP/2 を使用すると、クライアントは同じ証明書でカバーされているドメイン間で接続を再利用できます。この変更に対応するには、SNI 対応セッションでは、ADC アプライアンスが HTTP ホストヘッダーの検証方法を制御できる必要があります。以前のビルドでは、パラメータが有効で(「Yes」に設定されている)、要求にSNIが有効なセッションのホスト・ヘッダーが含まれていない場合、アプライアンスは要求をドロップしました。パラメータが無効になっている(「いいえ」に設定されている)場合、アプライアンスは検証を実行しませんでした。SSL プロファイルと SSL グローバルパラメータSNIHTTPHostMatch
に新しいパラメータが追加され、この検証をより適切に制御できるようになります。このパラメータには、CERT、SERT、および NONE の 3 つの値を指定できます。これらの値は、SNI が有効なセッションでのみ次のように機能します。SSL 仮想サーバまたは仮想サーバにバインドされたプロファイルで SNI を有効にする必要があります。また、HTTP 要求にはホストヘッダーが含まれている必要があります。
- CERT-要求のホストヘッダー値が、この SSL セッションの確立に使用される証明書によってカバーされている場合、 接続が転送されます。
- SERCT-要求内のホストヘッダー値が、SSL 接続の Client Hello メッセージで渡されたサーバー名の値と完全に一致する場合のみ、接続が転送されます。
- NO-ホストヘッダー値は検証されません。
指定可能な値:NO、CERT、厳密 デフォルト値:CERT
新しいパラメーターSNIHTTPHostMatch
の導入により、dropReqWithNoHostHeader
パラメーターの動作が変更されます。dropReqWithNoHostHeader
パラメータの設定は、ホストヘッダーが SNI 証明書に対して検証される方法に影響しなくなりました。
CLI を使用した SSL プロファイルパラメータの設定
コマンドプロンプトで、次のように入力します。
set ssl profile <name> [-ssllogProfile <string>] [-dh ( ENABLED | DISABLED ) -dhFile <string>] [-dhCount <positive_integer>][-dhKeyExpSizeLimit ( ENABLED | DISABLED )] [-eRSA ( ENABLED | DISABLED) [-eRSACount <positive_integer>]] [-sessReuse ( ENABLED | DISABLED )
[-sessTimeout <positive_integer>]] [-cipherRedirect ( ENABLED | DISABLED ) [-cipherURL <URL>]] [-clientAuth ( ENABLED | DISABLED )[-clientCert ( Mandatory | Optional )]] [-sslRedirect ( ENABLED |
DISABLED )] [-redirectPortRewrite ( ENABLED | DISABLED )] [-ssl3 (ENABLED | DISABLED )] [-tls1 ( ENABLED | DISABLED )] [-tls11 ( ENABLED| DISABLED )] [-tls12 ( ENABLED | DISABLED )] [-tls13 ( ENABLED |DISABLED )] [-SNIEnable ( ENABLED | DISABLED )] [-ocspStapling (ENABLED | DISABLED )] [-serverAuth ( ENABLED | DISABLED )] [-commonName <string>] [-pushEncTrigger <pushEncTrigger>] [-sendCloseNotify ( YES |
NO )] [-clearTextPort <port|*>] [-insertionEncoding ( Unicode | UTF-8)] [-denySSLReneg <denySSLReneg>] [-quantumSize <quantumSize>]
[-strictCAChecks ( YES | NO )] [-encryptTriggerPktCount <positive_integer>] [-pushFlag <positive_integer>][-dropReqWithNoHostHeader ( YES | NO )] [-SNIHTTPHostMatch <SNIHTTPHostMatch>] [-pushEncTriggerTimeout <positive_integer>]
[-sslTriggerTimeout <positive_integer>] [-clientAuthUseBoundCAChain (ENABLED | DISABLED )] [-sslInterception ( ENABLED | DISABLED )][-ssliReneg ( ENABLED | DISABLED )] [-ssliOCSPCheck ( ENABLED | DISABLED )] [-ssliMaxSessPerServer <positive_integer>] [-HSTS ( ENABLED| DISABLED )] [-maxage <positive_integer>] [-IncludeSubdomains ( YES | NO )] [-preload ( YES | NO )] [-sessionTicket ( ENABLED | DISABLED )][-sessionTicketLifeTime <positive_integer>] [-sessionTicketKeyRefresh (ENABLED | DISABLED )] {-sessionTicketKeyData } [-sessionKeyLifeTime <positive_integer>] [-prevSessionKeyLifeTime <positive_integer>]
[-cipherName <string> -cipherPriority <positive_integer>][-strictSigDigestCheck ( ENABLED | DISABLED )]
[-skipClientCertPolicyCheck ( ENABLED | DISABLED )] [-zeroRttEarlyData ( ENABLED | DISABLED )] [-tls13SessionTicketsPerAuthContext
<positive_integer>] [-dheKeyExchangeWithPsk ( YES | NO )]
TLSセッション・チケット拡張
SSL ハンドシェイクは CPU を大量に消費する操作です。セッションの再利用が有効な場合、既存のクライアントに対するサーバー/クライアントのキー交換操作はスキップされます。彼らはセッションを再開することができます。このアクションにより、応答時間が向上し、サーバーがサポートできる 1 秒あたりの SSL トランザクション数が増加します。ただし、サーバーは各セッション状態の詳細を保存する必要があり、メモリを消費し、要求がサーバー間で負荷分散される場合、複数のサーバー間で共有することは困難です。
Citrix ADCアプライアンスは、セッションチケットTLS拡張をサポートしています。この拡張機能を使用すると、セッションの詳細がサーバーではなくクライアントに格納されます。クライアントは、クライアント Hello メッセージにセッションチケット TLS 拡張を含めることによって、このメカニズムをサポートしていることを示す必要があります。新しいクライアントの場合、この拡張機能は空です。サーバーは、NewSessionTicket ハンドシェイクメッセージで新しいセッションチケットを送信します。セッションチケットは、サーバーのみが認識するキーペアを使用して暗号化されます。サーバーが新しいチケットを発行できない場合は、通常のハンドシェイクを完了します。
この機能は、フロントエンドSSLプロファイルでのみ使用でき、アプライアンスがサーバーとして機能し、セッション・チケットを生成する通信のフロントエンドでのみ使用できます。
制限事項
- この機能は FIPS プラットフォームではサポートされていません。
- この機能は、TLS バージョン 1.1 および 1.2 でのみサポートされます。
- SSL セッション ID の永続性は、セッションチケットではサポートされていません。
CLI を使用して TLS セッションチケット拡張を有効にする
コマンドプロンプトで、次のように入力します。
set ssl profile <name> -sessionTicket (ENABLED | DISABLED ) [-sessionTicketLifeTime <positive_integer>
引数:
sessionTicket: TLSセッションチケット拡張の状態。この拡張機能を使用すると、RFC 5077 で定義されているように、セッションの詳細がサーバーではなくクライアントに格納されます。
設定可能な値:ENABLED, DISABLED
デフォルト値: DISABLED
sessionTicketLifeTime:セッションチケットの有効期限が切れ、新しいSSLハンドシェイクを開始する必要があるまでの時間を秒単位で指定します。
デフォルト値:300
最小値:0
最大値:172800
例:
add ssl profile profile1 -sessionTicket ENABLED -sessionTicketlifeTime 300
Done
GUI を使用して TLS セッションチケット拡張を有効にする
- [システム] > [プロファイル] に移動します。[SSL プロファイル] を選択します。
- [追加] をクリックし、プロファイルの名前を指定します。
- 「 セッション・チケット」を選択します。
- オプションで、 セッション・チケットの有効期間 (秒)を指定します。
セッション・チケットの安全な実装
TLS セッションチケットを使用すると、クライアントは省略されたハンドシェイクを使用して、サーバーへの再接続を高速化できます。ただし、セッションチケットが暗号化または長期間変更されないと、セキュリティリスクが生じる可能性があります。セッション・チケットは、対称鍵で暗号化することで保護できます。転送秘密を実現するために、セッションチケットキーがリフレッシュされる時間間隔を指定できます。
アプライアンスは、デフォルトでセッション・チケット・キーを生成します。ただし、デプロイメント内の複数のアプライアンスが互いのセッションチケットを復号化する必要がある場合は、すべて同じセッションチケットキーを使用する必要があります。したがって、すべてのアプライアンスで同じセッションチケットキーデータを手動で設定(追加またはロード)する必要があります。セッション・チケット・キー・データには、次の情報が含まれます。
- セッション・チケット名。
- チケットの暗号化または復号化に使用されるセッション AES キー。
- チケットのダイジェストを計算するために使用されるセッションHMACキー。
RFC 5077 で推奨されているように 256 ビットの HMAC キーをサポートするために、長さ 64 バイトのセッションチケットキーデータを構成できるようになりました。下位互換性のために 48 バイトのキー長もサポートされています。
注:
セッションチケットキーデータを手動で入力するときは、HAセットアップまたはクラスタセットアップのすべてのCitrix ADCアプライアンスの構成が同じであることを確認してください。
sessionTicketKeyLifeTime
パラメータは、セッションチケットキーをリフレッシュする頻度を指定します。prevSessionTicketKeyLifeTime
パラメータを設定して、新しいキーが生成された後、そのキーを使用してチケットを復号化するために以前のセッションチケットキーを維持する期間を指定できます。prevSessionTicketKeyLifeTime
この設定により、クライアントが省略されたハンドシェイクを使用して再接続できる時間が延長されます。たとえば、sessionTicketKeyLifeTime
が 10 分、prevSessionTicketKeyLifeTime
が5 分に設定されている場合、10 分後に新しいキーが生成され、すべての新しいセッションで使用されます。ただし、以前に接続したクライアントにはさらに5分間あり、以前に発行されたチケットは省略されたハンドシェイクに対して優先されます。
CLI を使用した SSL セッションチケットデータの設定
コマンドプロンプトで、次のように入力します。
set ssl profile <name> -sessionTicket ENABLED -sessionTicketLifeTime <positive_integer> -sessionTicketKeyRefresh ( ENABLED | DISABLED )] -sessionTicketKeyLifeTime <positive_integer> [-prevSessionTicketKeyLifeTime <positive_integer>]
引数:
sessionTicket:RFC 5077の記述に従ってセッションチケットを使用します。初期ハンドシェイクを確立するには、CPU を大量に消費する公開キー暗号化操作が必要です。ENABLED 設定では、サーバーはクライアントにセッションチケットを発行し、クライアントは省略されたハンドシェイクを実行するために使用できます。
設定可能な値:ENABLED, DISABLED。デフォルト:DISABLED
sessionTicketLifeTime:セッションチケットの有効期間(秒単位)。この時間が経過すると、クライアントはこのチケットを使用してセッションを再開できません。
最大値:172800 です。最小値:0。デフォルトは 300 です。
sessionTicketKeyRefresh:セッションチケットキーの有効期間パラメータで指定された時間が経過すると、セッションチケットの暗号化または復号化に使用されるセッションチケットキーを再生成します。セッションチケットが有効になっている場合、自動的に有効になります。管理者がセッション・チケット・データを入力すると無効になります。
設定可能な値:ENABLED, DISABLED。デフォルト:ENABLED
sessionKeyLifeTime:Citrix ADCアプライアンスによって発行されたセッションチケットの暗号化に使用される対称キーの有効期間(秒単位)。
最大値:86400。最小値:600。デフォルト:3000
prevSessionKeyLifeTime: セッションチケットキーの有効期間が終了した後も、セッションチケットの暗号化に使用された以前の対称キーが、既存のクライアントに対して有効なままになる時間(秒単位)。この時間内に、既存のクライアントは、以前のセッションチケットキーを使用してセッションを再開できます。新しいクライアントのセッションチケットは、新しいキーを使用して暗号化されます。
最大値:172800 です。最小値:0。デフォルト:0
例:
set ssl profile ns_default_ssl_profile_frontend -sessionTicket ENABLED -sessionTicketlifeTime 120 -sessionTicketKeyRefresh ENABLED -sessionTicketKeyLifeTime 100 -prevSessionTicketKeyLifeTime 60
Done
show ssl profile ns_default_ssl_profile_frontend
Session Ticket: ENABLED
Session Ticket Lifetime: 120 (secs)
Session Key Auto Refresh: ENABLED
Session Key Lifetime: 100 (secs)
Previous Session Key Lifetime: 60 (secs)
GUI を使用して SSL セッションチケットデータを構成する
-
[システム] > [プロファイル] に移動し、[SSL プロファイル] を選択します。
-
「 ns_default_ssl_プロファイル_フロントエンド 」を選択し、「 編集 」をクリックします。
-
[基本設定] セクションで、鉛筆アイコンをクリックし、次のパラメータを設定します。
- セッションチケット
- セッションチケットの有効期間 (秒)
- セッションチケットキーの自動更新
- セッションチケットキーの有効期間 (秒)
- 前のセッションチケットキーの有効期間 (秒)
-
[OK] をクリックします。
CLI を使用して SSL セッションチケットデータを手動で入力します
コマンドプロンプトで、次のように入力します。
set ssl profile <name> -sessionTicket ENABLED
set ssl profile <name> -sessionTicketKeyData
show ssl profile ns_default_ssl_profile_frontend
引数:
sessionTicket:RFC 5077によって記述されたセッションチケットの使用。初期ハンドシェイクを確立するには、CPU を大量に消費する公開キー暗号化操作が必要です。ENABLED 設定では、サーバーはクライアントにセッションチケットを発行し、クライアントは省略されたハンドシェイクを実行するために使用できます。
設定可能な値:ENABLED, DISABLED。デフォルト:DISABLED
sessionTicketKeyData: セッションチケット名(0~15バイト)、セッションチケットの暗号化または復号化に使用されるセッションAESキー(16~31バイト)、チケットのダイジェストを計算するために使用されるセッションHMACキー(32~63バイト)が含まれます。管理者によって外部から生成され、Citrix ADCアプライアンスに追加されます。
最大長:64 バイト
例:
set ssl profile ns_default_ssl_profile_frontend -sessionTicket ENABLED
Done
set ssl profile ns_default_ssl_profile_frontend -sessionTicketKeyData 111111111111111111111111111111111111111111111111
Done
show ssl profile ns_default_ssl_profile_frontend
1) Name: ns_default_ssl_profile_frontend (Front-End)
SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED
Client Auth: DISABLED
Use only bound CA certificates: DISABLED
Strict CA checks: NO
Session Reuse: ENABLED Timeout: 120 seconds
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Deny SSL Renegotiation ALL
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
SSL Redirect: DISABLED
Send Close-Notify: YES
Push Encryption Trigger: Always
PUSH encryption trigger timeout: 1 ms
SNI: DISABLED
OCSP Stapling: DISABLED
Strict Host Header check for SNI enabled SSL sessions: NO
Push flag: 0x0 (Auto)
SSL quantum size: 8 kB
Encryption trigger timeout 100 mS
Encryption trigger packet count: 45
Subject/Issuer Name Insertion Format: Unicode
Session Ticket: ENABLED
Session Ticket Lifetime: 300 (secs)
Session Key Auto Refresh: DISABLED
Session Key Lifetime: 3000 (secs)
Previous Session Key Lifetime: 0 (secs)
Session Key Data: 84dad1afc6d56b0deeb0a7fd7f299a207e8d8c15cdd087a5684a11a329fd732e87a0535d90883
47e8c181ba266f5c8838ae472cb3ab9255b683bf922fad32cee816c329989ef7cdeb278e93ac37882e3
ECC Curve: P_256, P_384, P_224, P_521
1) Cipher Name: DEFAULT Priority :4
Description: Predefined Cipher Alias
1) Internal Service Name (Front-End): nsrnatsip-127.0.0.1-5061
2) Internal Service Name (Front-End): nskrpcs-127.0.0.1-3009
3) Internal Service Name (Front-End): nshttps-::1l-443
4) Internal Service Name (Front-End): nsrpcs-::1l-3008
5) Internal Service Name (Front-End): nshttps-127.0.0.1-443
6) Internal Service Name (Front-End): nsrpcs-127.0.0.1-3008
7) Vserver Name: v1
Done
GUI を使用して SSL セッションチケットデータを手動で入力します
-
[システム] > [プロファイル] に移動し、[SSL プロファイル] を選択します。
-
「 ns_default_ssl_プロファイル_フロントエンド 」を選択し、「 編集 」をクリックします。
-
[基本設定] セクションで、鉛筆アイコンをクリックし、次のパラメータを設定します。
- セッションチケット
- セッション・チケット・キー・データ
- セッション・チケット・キー・データの確認
-
[OK] をクリックします。
Citrix ADC 非 FIPS プラットフォームでの SSL ハンドシェイクでの拡張マスターシークレットのサポート
注: このパラメータは、リリース13.0 build 61.xで導入されています。
拡張マスターシークレット (EMS) は、トランスポート層セキュリティ (TLS) プロトコルのオプションの拡張です。Citrix ADCアプライアンスでEMSをサポートするために、フロントエンドとバックエンドのSSLプロファイルの両方に適用される新しいパラメータが追加されました。パラメータが有効で、ピアが EMS をサポートしている場合、ADC アプライアンスは EMS 計算を使用します。ピアが EMS をサポートしていない場合、パラメータがアプライアンス上で有効になっていても、EMS 計算は接続に使用されません。EMS の詳細については、RFC 7627 を参照してください。
注: 拡張マスターシークレットは、TLS プロトコルバージョン 1.0、1.1、または 1.2 を使用するハンドシェイクにのみ適用されます。
EMS のプラットフォームサポート
- Cavium N3 チップまたはインテル Coleto Creek 暗号カードのいずれかを含む MPX および SDX プラットフォーム以下のプラットフォームには、インテル Coleto チップが搭載されています。
- MPX 5900
- MPX/SDX 8900
- MPX/SDX 26000
- MPX/SDX 26000-50S
- MPS/SDX 26000-100G
- MPX/SDX 15000-50G
また、「show hardware」コマンドを使用して、アプライアンスにColeto(COL)チップと N3 チップのどちらが搭載されているかを識別することもできます。
-
クリプトカードを使用しない MPX および SDX プラットフォーム(ソフトウェアのみ)
-
ソフトウェアのみのプラットフォーム:VPX、CPX、BLX。
次のプラットフォームでは EMS を有効にできません。
-
MPX 9700 FIPSとMPX 14000 FIPSプラットフォーム。
-
Cavium N2暗号チップを含むMPXおよびSDXプラットフォーム。
このパラメータが有効な場合、ADC アプライアンスは TLS 1.2、TLS 1.1、および TLS 1.0 接続で EMS を使用しようとします。この設定は、TLS 1.3 または SSLv3 接続には影響しません。
EMS をピアとネゴシエートできるようにするには、仮想サーバ(フロントエンド)またはサービス(バックエンド)にバインドされた SSL プロファイルの設定を有効にします。
CLI を使用した拡張マスターシークレットの有効化
コマンドプロンプトで、次のように入力します。
set ssl profile <profile name> [-allowExtendedMasterSecret (YES | NO)]
例
set ssl profile ns_default_ssl_profile_frontend -allowExtendedMasterSecret YES
set ssl profile ns_default_ssl_profile_backend -allowExtendedMasterSecret YES
次の表に、異なるデフォルトプロファイルとユーザー定義プロファイルでのallowExtendedMasterSecret
パラメータのデフォルト値を示します。
Profile | デフォルト設定 |
---|---|
既定のフロントエンドプロファイル | いいえ |
デフォルトのフロントエンド・セキュア・プロファイル | はい |
デフォルトのバックエンドプロファイル | いいえ |
ユーザー定義のプロファイル | いいえ |
GUI を使用した拡張マスターシークレットの有効化
- [システム] > [プロファイル] > [SSL プロファイル] に移動します。
- プロファイルを追加するか、プロファイルを編集します。
-
[拡張マスターシークレットを許可] を [はい] に設定します
クライアントの hello メッセージでの ALPN 拡張機能の処理のサポート
注:この機能は、リリース 13.0 ビルド 61.x 以降でサポートされています。
SSL_TCP 仮想サーバーによって処理される接続の ALPN 拡張内のアプリケーションプロトコルをネゴシエートするために、フロントエンド SSL プロファイルにパラメータalpnProtocol
が追加されます。クライアント hello メッセージの ALPN 拡張で同じプロトコルを受信した場合、SSL プロファイルに指定されたプロトコルだけがネゴシエートされます。
注: このalpnProtocol
パラメータは、フロントエンド SSL プロファイルでのみサポートされ、SSL_TCP タイプの仮想サーバーによって処理される SSL 接続に適用されます。
CLI を使用してフロントエンド SSL プロファイルでプロトコルを設定する
コマンドプロンプトで、次のように入力します。
set ssl profile ns_default_ssl_profile_frontend -alpnProtocol <protocol_name>
alpnProtocol
パラメータには 3 つの値を指定できます。最大長:4096 バイト
- NONE: アプリケーションプロトコルネゴシエーションは行われません。この設定がデフォルトです。
- HTTP1: HTTP1 は、アプリケーションプロトコルとしてネゴシエートできます。
- HTTP2: HTTP2 は、アプリケーションプロトコルとしてネゴシエートできます。
例:
set ssl profile ns_default_ssl_profile_frontend -ALPNProtocol HTTP2
> sh ssl profile ns_default_ssl_profile_frontend
1) Name: ns_default_ssl_profile_frontend (Front-End)
SSLv3: DISABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED TLSv1.3: DISABLED
Client Auth: DISABLED
Use only bound CA certificates: DISABLED
Strict CA checks: NO
Session Reuse: ENABLED Timeout: 120 seconds
DH: DISABLED
DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
Deny SSL Renegotiation ALL
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
SSL Redirect: DISABLED
Send Close-Notify: YES
Strict Sig-Digest Check: DISABLED
Zero RTT Early Data: DISABLED
DHE Key Exchange With PSK: NO
Tickets Per Authentication Context: 1
Push Encryption Trigger: Always
PUSH encryption trigger timeout: 1 ms
SNI: DISABLED
OCSP Stapling: DISABLED
Strict Host Header check for SNI enabled SSL sessions: NO
Match HTTP Host header with SNI: CERT
Push flag: 0x0 (Auto)
SSL quantum size: 8 kB
Encryption trigger timeout 100 mS
Encryption trigger packet count: 45
Subject/Issuer Name Insertion Format: Unicode
SSL Interception: DISABLED
SSL Interception OCSP Check: ENABLED
SSL Interception End to End Renegotiation: ENABLED
SSL Interception Maximum Reuse Sessions per Server: 10
Session Ticket: DISABLED
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
HSTS Preload: NO
Allow Extended Master Secret: NO
Send ALPN Protocol: HTTP2
Done
GUI を使用してフロントエンド SSL プロファイルでプロトコルを設定する
-
[システム] > [プロファイル] に移動し、[SSL プロファイル] を選択します。
-
「 ns_default_ssl_プロファイル_フロントエンド 」を選択し、「 編集 」をクリックします。
-
[ALPN プロトコル] ボックスの一覧で、[HTTP2] を選択します。
古い設定をロードする
デフォルトのプロファイルを有効にしても、元に戻すことはできません。ただし、展開で既定のプロファイルが必要でないと判断した場合は、既定のプロファイルを有効にする前に保存した古い設定を読み込むことができます。変更は、アプライアンスを再起動した後に有効になります。
CLI を使用して古い設定をロードする
コマンドプロンプトで、次のように入力します。
shell
root@ns# clear config
root@ns# cd /nsconfig
root@ns# cp ns.conf.NS.11.0.jun.16 ns.conf
root@ns# reboot