Citrix ADC

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 が表示されます。

重要:

  • SSLプロファイルはSSLパラメーターよりも優先されます。つまり、 set ssl parameter コマンドを使用してSSLパラメータを設定し、後でプロファイルをSSLエンティティにバインドすると、プロファイルの設定が優先されます。

  • アップグレード後、デフォルトプロファイルを有効にすると、変更を元に戻すことはできません。つまり、プロファイルを無効にすることはできません。プロファイルを有効にする前に、構成を保存し、構成ファイル(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 つの仮想サーバにバインドできるプロファイルは 1 つだけです。
  2. 仮想サーバーにバインドされているプロファイルを削除するには、まずプロファイルのバインドを解除します。
  3. 暗号グループまたは暗号グループは、異なる優先順位で複数のプロファイルにバインドできます。
  4. プロファイルは、異なる優先順位でバインドされた複数の暗号および暗号グループを持つことができます。
  5. 暗号グループへの変更は、すべてのプロファイルとプロファイルのいずれかがバインドされているすべての仮想サーバーに即座に反映されます。
  6. 暗号スイートが暗号グループの一部である場合、プロファイルから暗号スイートを削除する前に、暗号グループを編集してその暗号スイートを削除します。
  7. プロファイルにアタッチされている暗号スイートまたは暗号グループにプライオリティを割り当てない場合は、プロファイル内で最も低いプライオリティが割り当てられます。
  8. 既存の暗号グループおよび暗号スイートからカスタム暗号グループ(ユーザ定義暗号グループとも呼ばれる)を作成できます。暗号グループ A を作成し、既存の暗号グループ X と Y をこの順序で追加すると、Y は X よりも低い優先順位で割り当てられます。つまり、最初に追加されるグループの優先順位が高くなります。
  9. 暗号スイートが同じプロファイルに接続された2つの暗号グループの一部である場合、暗号スイートは2番目の暗号グループの一部として追加されません。トラフィックが処理されると、プライオリティの高い暗号スイートが有効になります。
  10. 暗号グループは、プロファイル内で展開されません。その結果、構成ファイル (ns.conf) の行数が大幅に削減されます。たとえば、それぞれ 15 個の暗号を含む 2 つの暗号グループが 1000 個の SSL 仮想サーバにバインドされている場合、拡張は設定ファイルに 30*1000 個の暗号関連のエントリを追加します。新しいプロファイルでは、プロファイルにバインドされた暗号グループごとに 1 つずつ、2 つのエントリしかありません。
  11. 既存の暗号および暗号グループからユーザー定義暗号グループを作成することは、コピー&ペースト操作です。元のグループの変更は、新しいグループに反映されません。
  12. ユーザ定義の暗号グループには、それが属するすべてのプロファイルがリストされます。
  13. プロファイルには、バインドされているすべての SSL 仮想サーバ、サービス、およびサービスグループが一覧表示されます。
  14. デフォルトの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 エンティティにバインドすることもできます。

次のフローチャートでは、実行する必要がある手順について説明します。

SSL プロファイルの使用例 1

  1. ソフトウェアのアップグレードについては、システムソフトウェアのアップグレードを参照してください。

  2. CLI または GUI を使用して、デフォルトプロファイルを有効にします。

  • コマンドラインで、次を入力します:set ssl parameter -defaultProfile ENABLED
  • GUI を使用する場合は、[トラフィック管理] > [SSL] > [高度な SSL設定の変更] に移動し、下にスクロールして [デフォルトプロファイルの有効化] を選択します。

アップグレード前にプロファイルがエンドポイントにバインドされていない場合、デフォルトプロファイルが SSL エンドポイントにバインドされます。アップグレード前にプロファイルがエンドポイントにバインドされている場合は、アップグレード後に同じプロファイルがバインドされ、デフォルトの暗号がプロファイルに追加されます。

  1. (オプション)デフォルトプロファイルの設定を手動で変更します。
  • コマンドラインで、変更するパラメータに続けてset ssl profile <name>を入力します。
  • GUI を使用する場合は、[システム] > [プロファイル] に移動します。「 SSLプロファイル」でプロファイルを選択し、「 編集」をクリックします。

SSL プロファイルパラメータ

SSL プロファイルでは、次の SSL パラメータを設定できます。これらのパラメータの一部は、SSL 仮想サーバーで設定できます。SSL 仮想サーバパラメータの詳細については、SSL 仮想サーバのパラメータを参照してください。

Citrix ADCアプライアンスのバックエンドでの安全な再ネゴシエーションのサポート

注: このパラメーターは、リリース13.0ビルド58.x以降で導入されました。以前のリリースとビルドでは、非セキュアな再ネゴシエーションのみがバックエンドでサポートされていました。

これらのプラットフォームでは、次の 3 つの LOM 機能がサポートされています。

  • 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を使用して安全な再ネゴシエーションを有効にする

  1. [システム] > [プロファイル] > [SSL プロファイル] に移動します。
  2. プロファイルを追加または編集します。
  3. [SSL再ネゴシエーションの拒否]を ALL以外の任意の値に設定します。

    バックエンドの安全な再ネゴシエーションSSLプロファイル

ホストヘッダーの検証

注: このパラメーターは、リリース13.0ビルド52.xで導入されました。

と HTTP/1.1, クライアントは、複数の要求を処理するために複数の接続を使用する必要がありました。と HTTP/2, クライアントは、同じ証明書でカバーされているドメイン間で接続を再利用できます。SNI対応セッションの場合、ADCアプライアンスは、この変更に対応するためにHTTPホストヘッダーを検証する方法を制御できる必要があります。以前のビルドでは、パラメーターが有効になっていて(「はい」に設定されている)、要求にSNIが有効なセッションのホストヘッダーが含まれていない場合、要求はドロップされました。パラメータが無効になっている(「いいえ」に設定されている)場合、アプライアンスは検証を実行しませんでした。新しいパラメータ SNIHTTPHostMatch がSSLプロファイルとSSLグローバルパラメータに追加され、この検証をより適切に制御できるようになりました。このパラメーターは3つの値を取ることができます。 CERT、STRICT、およびNONE。これらの値は、SNI対応セッションでのみ次のように機能します。SNIは、SSL仮想サーバーまたは仮想サーバーにバインドされたプロファイルで有効にする必要があり、HTTP要求にはホストヘッダーが含まれている必要があります。

  • CERT- 要求のホストヘッダー値がこのSSLセッションの確立に使用される証明書でカバーされている場合、接続が転送されます。
  • STRICT-接続は、リクエストのホストヘッダー値がSSL接続のClientHelloメッセージで渡されたサーバー名の値と一致する場合にのみ転送されます。
  • NO-ホストヘッダー値は検証されません。

可能な値:NO、CERT、STRICT デフォルト値: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 )]

GUIを使用してSSLプロファイルパラメータを設定する

プロファイルを追加するには:

  1. System > Profilesに移動します。 システムプロファイル
  2. [SSL プロファイル] を選択します。[追加] をクリックします。 SSL プロファイル
  3. さまざまなパラメーターの値を指定します。 SSL プロファイルパラメータ
  4. [OK] をクリックします。
  5. [完了] をクリックします。

既存のSSLプロファイルを再利用するには:

  1. System > Profilesに移動します。
  2. 既存のプロファイルを選択し、[追加]をクリックします。
  3. 別の名前を指定し、パラメータを変更して、[OK]をクリックします。
  4. [完了] をクリックします。

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 セッションチケット拡張を有効にする

  1. System > Profilesに移動します。[SSL プロファイル] を選択します。
  2. [追加] をクリックし、プロファイルの名前を指定します。
  3. セッション・チケット」を選択します。
  4. オプションで、 セッション・チケットの有効期間 (秒)を指定します。

セッション・チケットの安全な実装

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 セッションチケットデータを構成する

  1. [システム] > [プロファイル] に移動し、[SSL プロファイル] を選択します。

  2. ns_default_ssl_プロファイル_フロントエンド 」を選択し、「 編集 」をクリックします。

  3. [基本設定] セクションで、鉛筆アイコンをクリックし、次のパラメータを設定します。

    • セッションチケット
    • セッションチケットの有効期間 (秒)
    • セッションチケットキーの自動更新
    • セッションチケットキーの有効期間 (秒)
    • 前のセッションチケットキーの有効期間 (秒)
  4. [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: Contains the session ticket name (0–15 bytes), the session AES key used to encrypt or decrypt the session ticket (16–31 bytes), and the session HMAC key used to compute the digest of the ticket (32–63 bytes). Externally generated by an administrator and added to a Citrix ADC appliance.

最大長: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 セッションチケットデータを手動で入力します

  1. システムに移動> プロファイル、および SSLプロファイルを選択します。

  2. ns_default_ssl_プロファイル_フロントエンド 」を選択し、「 編集 」をクリックします。

  3. [基本設定] セクションで、鉛筆アイコンをクリックし、次のパラメータを設定します。

    • セッションチケット
    • セッション・チケット・キー・データ
    • セッション・チケット・キー・データの確認
  4. [OK] をクリックします。

Citrix ADC非FIPSプラットフォームでのSSLハンドシェイクでの拡張マスターシークレットのサポート

注: このパラメーターは、リリース13.0ビルド61.xで導入されました。

拡張マスターシークレット(EMS)は、トランスポート層セキュリティ(TLS)プロトコルのオプションの拡張機能です。Citrix ADCアプライアンスでEMSをサポートするために、フロントエンドとバックエンドの両方のSSLプロファイルに適用される新しいパラメーターが追加されました。パラメータが有効で、ピアがEMSをサポートしている場合、ADCアプライアンスはEMS計算を使用します。ピアがEMSをサポートしていない場合、アプライアンスでパラメータが有効になっていても、EMS計算は接続に使用されません。EMSについて詳しくは、RFC 7627を参照してください。

注: EMSは、TLSプロトコルバージョン1.0、1.1、または1.2を使用するハンドシェイクにのみ適用できます。

EMSのプラットフォームサポート

  • CaviumN3チップまたはIntelColetoCreek暗号カードのいずれかを含むMPXおよびSDXプラットフォーム。次のプラットフォームには、Intel Coleto チップが同梱されています。
  • MPX 5900
  • MPX/SDX 8900
  • MPX/SDX 26000
  • MPX/SDX 26000-50S
  • MPS/SDX 26000-100G
  • MPX/SDX 15000-50G

「showhardware」コマンドを使用して、アプライアンスにColeto(COL)またはN3チップがあるかどうかを識別することもできます。

  • 暗号カードのないMPXおよびSDXプラットフォーム(ソフトウェアのみ)。

  • ソフトウェアのみのプラットフォーム:VPX、CPX、およびBLX。

次のプラットフォームではEMSを有効にできません。

  • MPX 9700FIPSおよびMPX14000FIPSプラットフォーム。

  • CaviumN2暗号チップを含むMPXおよびSDXプラットフォーム。

パラメータが有効になっている場合、ADCアプライアンスはTLS 1.2、TLS 1.1、およびTLS 1.0接続でEMSを使用しようとします。この設定は、TLS1.3またはSSLv3接続には影響しません。

EMSがピアとネゴシエートできるようにするには、仮想サーバー(フロントエンド)またはサービス(バックエンド)にバインドされたSSLプロファイルの設定を有効にします。

CLIを使用してEMSを有効にする

コマンドプロンプトで、次のように入力します。

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 パラメーターのデフォルト値を示しています。

プロファイル デフォルト設定
デフォルトのフロントエンドプロファイル いいえ
デフォルトのフロントエンドセキュアプロファイル はい
デフォルトのバックエンドプロファイル いいえ
ユーザー定義のプロファイル いいえ

GUIを使用してEMSを有効にする

  1. [システム] > [プロファイル] > [SSL プロファイル] に移動します。
  2. プロファイルを追加するか、プロファイルを編集します。
  3. [拡張マスターシークレット を許可する]を[はい]に設定します。

    EMS

クライアントhelloメッセージでのALPN拡張の処理のサポート

注: この機能は、リリース 11.0 ビルド 64.x 以降でサポートされています。

パラメータ alpnProtocol がフロントエンドSSLプロファイルに追加され、ALPN拡張機能で処理される接続のアプリケーションプロトコルをネゴシエートします。 SSL_TCP 仮想サーバー。クライアントhelloメッセージのALPN拡張で同じプロトコルが受信された場合、SSLプロファイルで指定されたプロトコルのみがネゴシエートされます。

注: alpnProtocolパラメーターはフロントエンドSSLプロファイルでのみサポートされ、によって処理されるSSL接続に適用されます。 SSL_TCP タイプ仮想サーバー。

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プロファイルでプロトコルを設定します

  1. System > Profilesに移動してSSL Profileを選択します。

  2. ns_default_ssl_プロファイル_フロントエンド 」を選択し、「 編集 」をクリックします。

  3. [ALPNプロトコル] リストで、[HTTP2]を選択します。

    GUIでのALPNプロトコルの選択

古い設定をロードする

デフォルトのプロファイルを有効にしても、元に戻すことはできません。ただし、展開で既定のプロファイルが必要でないと判断した場合は、既定のプロファイルを有効にする前に保存した古い設定を読み込むことができます。変更は、アプライアンスを再起動した後に有効になります。

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