Citrix ADC

SSL オフロード設定

SSLオフロードを構成するには、Citrix ADCアプライアンスでSSL処理を有効にし、SSLベースの仮想サーバーを構成する必要があります。仮想サーバーは、SSL トラフィックを代行受信し、トラフィックを復号化し、仮想サーバーにバインドされたサービスに転送します。メディアストリーミングなど、時間に依存するトラフィックを保護するために、DTLS 仮想サーバーを設定できます。SSL オフロードを有効にするには、有効な証明書とキーをインポートし、ペアを仮想サーバーにバインドする必要があります。

SSL の有効化

SSL トラフィックを処理するには、SSL 処理を有効にする必要があります。SSL 処理を有効にしなくても、仮想サーバーやサービスなどの SSL ベースのエンティティを設定できます。ただし、SSL 処理が有効になるまで機能しません。

CLI を使用した SSL 処理の有効化

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

enable ns feature ssl

show ns feature

例:

enable ns feature SSL
 Done
show ns feature

        Feature                        Acronym              Status
        -------                        -------              ------
 1)     Web Logging                    WL                   OFF
 2)     Surge Protection               SP                   ON
 3)     Load Balancing                 LB                   ON
 .
 .
 .
 9)     SSL Offloading                 SSL                  ON
 .
 .
 .
 24)    NetScaler Push                 push                 OFF
 Done

GUI を使用した SSL 処理の有効化

[システム] > [設定] に移動し、[モードと機能] グループで [基本機能の構成] をクリックし、[SSL オフロード] をクリックします。

サービスの構成

Citrix ADCアプライアンスでは、サービスは、物理サーバーまたは物理サーバー上のアプリケーションを表します。構成が完了すると、アプライアンスがネットワーク上の物理サーバに到達し、そのステータスを監視するまで、サービスは無効状態になります。

CLI を使用したサービスの追加

コマンドプロンプトで次のコマンドを入力して、サービスを追加し、構成を確認します。

add service <name> (<IP> | <serverName>) <serviceType> <port>
show service <serviceName>

例:

add service sslsvc 198.51.100.225 SSL 443

Done

sh ssl service sslsvc

            Advanced SSL configuration for Back-end SSL Service sslsvc:
            DH: DISABLED
            DH Private-Key Exponent Size Limit: DISABLED    Ephemeral RSA: DISABLED
            Session Reuse: ENABLED          Timeout: 300 seconds
            Cipher Redirect: DISABLED
            SSLv2 Redirect: DISABLED
            ClearText Port: 0
            Server Auth: DISABLED
            SSL Redirect: DISABLED
            Non FIPS Ciphers: DISABLED
            SNI: DISABLED
            OCSP Stapling: DISABLED
            SSLv2: DISABLED  SSLv3: ENABLED  TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
            Send Close-Notify: YES
            Strict Sig-Digest Check: DISABLED
            Zero RTT Early Data: ???
            DHE Key Exchange With PSK: ???
            Tickets Per Authentication Context: ???

            ECC Curve: P_256, P_384, P_224, P_521

    1)      Cipher Name: DEFAULT_BACKEND
            Description: Default cipher list for Backend SSL session
     Done

CLI を使用したサービスの変更または削除

サービスを変更するには、set service コマンドを使用します。このコマンドは、add service コマンドと同様ですが、既存のサービスの名前を入力する点が異なります。サービスを削除するには、rm service コマンドを使用します。このコマンドは、<name> 引数だけを受け入れます。

GUI を使用したサービスの構成

トラフィック管理」>「負荷分散」>「サービス」に移動し、サービスを作成し、プロトコルを SSL として指定します。

SSL 仮想サーバーの構成

セキュアなセッションでは、クライアントとCitrix ADCアプライアンス上のSSLベースの仮想サーバー間の接続を確立する必要があります。SSL 仮想サーバは、SSL トラフィックを代行受信し、それを復号化して処理してから、仮想サーバにバインドされているサービスに送信します。

注: 有効な証明書/キーのペアと少なくとも1つのサービスがバインドされるまで、SSL 仮想サーバーはCitrix ADCアプライアンス上でダウンとしてマークされます。SSL ベースの仮想サーバは、プロトコルタイプ SSL または SSL_TCP のロードバランシング仮想サーバです。負荷分散機能は、Citrix ADCアプライアンスで有効にする必要があります。

CLI を使用して SSL ベースの仮想サーバーを追加する

コマンドプロンプトで次のコマンドを入力し、SSLベースの仮想サーバーを追加して構成を確認します。

add lb vserver <name> (serviceType) <IPAddress> <port>
show ssl vserver <name>

例:

add lb vserver sslvs SSL 192.0.2.240 443
Done

sh ssl vserver sslvs

            Advanced SSL configuration for VServer sslvs:
            DH: DISABLED
            DH Private-Key Exponent Size Limit: DISABLED    Ephemeral RSA: ENABLED          Refresh Count: 0
            Session Reuse: ENABLED          Timeout: 120 seconds
            Cipher Redirect: DISABLED
            SSLv2 Redirect: DISABLED
            ClearText Port: 0
            Client Auth: DISABLED
            SSL Redirect: DISABLED
            Non FIPS Ciphers: DISABLED
            SNI: DISABLED
            OCSP Stapling: DISABLED
            HSTS: DISABLED
            HSTS IncludeSubDomains: NO
            HSTS Max-Age: 0
            SSLv2: DISABLED  SSLv3: ENABLED  TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
            Push Encryption Trigger: Always
            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
            ECC Curve: P_256, P_384, P_224, P_521

    1)      Cipher Name: DEFAULT
            Description: Default cipher list with encryption strength >= 128bit
     Done

CLI を使用して SSL ベースの仮想サーバーを変更または削除する

SSL 仮想サーバのロードバランシングプロパティを変更するには、set lb vserver コマンドを使用します。set コマンドはadd lb vserverコマンドと似ていますが、既存の仮想サーバの名前を入力する点が異なります。SSLベースの仮想サーバのSSL プロパティを変更するには、set ssl vserver コマンドを使用します。詳細については、このページの「SSL 仮想サーバーのパラメーター」を参照してください。

SSL 仮想サーバを削除するには、rm lb vserverコマンドを使用します。このコマンドは、<name> 引数だけを受け入れます。

GUI を使用して SSL ベースの仮想サーバーを構成する

[トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、仮想サーバーを作成し、プロトコルを SSL として指定します。

SSL 仮想サーバーへのサービスのバインド

ADCアプライアンスは、復号化されたSSLデータをネットワーク上のサーバーに転送します。データを転送するには、これらの物理サーバーを表すサービスを、SSL データを受信する仮想サーバーにバインドする必要があります。

通常、ADCアプライアンスと物理サーバ間のリンクは安全です。したがって、アプライアンスと物理サーバー間のデータ転送を暗号化する必要はありません。ただし、アプライアンスとサーバー間のデータ転送を暗号化することで、エンドツーエンド暗号化を提供できます。詳しくは、「エンドツーエンドの暗号化による SSL オフロードの構成」を参照してください。

注: SSLベースの仮想サーバーにサービスをバインドする前に、ADCアプライアンスで負荷分散機能を有効にしてください。

CLI を使用してサービスを仮想サーバーにバインドする

コマンドプロンプトで次のコマンドを入力して、サービスを仮想サーバーにバインドし、構成を確認します。

bind lb vserver <name> <serviceName>
show lb vserver <name>

例:

bind lb vserver sslvs sslsvc
     Done

sh lb vserver sslvs

            sslvs (192.0.2.240:443) - SSL       Type: ADDRESS
            State: DOWN[Certkey not bound]
            Last state change was at Wed May  2 11:43:04 2018
            Time since last state change: 0 days, 00:13:21.150
            Effective State: DOWN
            Client Idle Timeout: 180 sec
            Down state flush: ENABLED
            Disable Primary Vserver On Down : DISABLED
            Appflow logging: ENABLED
            No. of Bound Services :  1 (Total)       0 (Active)
            Configured Method: LEASTCONNECTION      BackupMethod: ROUNDROBIN
            Mode: IP
            Persistence: NONE
            Vserver IP and Port insertion: OFF
            Push: DISABLED  Push VServer:
            Push Multi Clients: NO
            Push Label Rule: none
            L2Conn: OFF
            Skip Persistency: None
            Listen Policy: NONE
            IcmpResponse: PASSIVE
            RHIstate: PASSIVE
            New Service Startup Request Rate: 0 PER_SECOND, Increment Interval: 0
            Mac mode Retain Vlan: DISABLED
            DBS_LB: DISABLED
            Process Local: DISABLE
            Traffic Domain: 0
            TROFS Persistence honored: ENABLED
            Retain Connections on Cluster: NO
    1) sslsvc (198.51.100.225: 443) - SSL State: DOWN       Weight: 1
     Done

CLI を使用して仮想サーバからサービスをバインド解除する

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

unbind lb vserver <name> <serviceName>

例:

unbind lb vserver sslvs sslsvc
     Done

GUI を使用してサービスを仮想サーバーにバインドする

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動します。
  2. 仮想サーバを開き、[サービス]セクションをクリックして、サービスを仮想サーバにバインドします。

複数のサイトの安全なホスティングのためのサーバー名表示 (SNI) 仮想サーバーの構成

仮想ホスティングは、同じIPアドレスで複数のドメイン名をホストするために、Webサーバーによって使用されます。アプライアンスは、透過的なSSLサービスまたは仮想サーバーベースのSSLオフロードを使用してWebサーバーからSSL処理をオフロードすることで、複数のセキュアなドメインのホスティングをサポートします。ただし、複数の Web サイトが同じ仮想サーバーでホストされている場合、想定されるホスト名が仮想サーバーに送信される前に、SSL ハンドシェイクが完了します。その結果、アプライアンスは、接続の確立後にクライアントに提示する証明書を決定できません。この問題は、仮想サーバーで SNI を有効にすることで解決されます。SNI は、ハンドシェイク開始時にホスト名を提供するためにクライアントが使用するトランスポート層セキュリティ (TLS) 拡張機能です。ADCアプライアンスは、このホスト名を共通名と比較し、一致しない場合は、サブジェクト代替名(SAN)と比較します。名前が一致する場合、アプライアンスは対応する証明書をクライアントに提示します。

ワイルドカード SSL 証明書は、同じ組織がこれらのドメインを制御し、第 2 レベルのドメイン名が同じ場合、複数のサブドメインで SSL 暗号化を有効にするのに役立ちます。たとえば、一般名「*.sports.net」を使用してスポーツネットワークに発行されたワイルドカード証明書は、「login.sports.net」や「help.sports.net」などのドメインを保護するために使用できますが、「login.ftp.sports.net」は使用できません。

注: ADCアプライアンスでは、 SANフィールドのドメイン名、URL、電子メールIDのDNSエントリのみが比較されます。

-SNICert オプションを使用すると、複数のサーバ証明書を単一の SSL 仮想サーバまたは透過サービスにバインドできます。仮想サーバーまたはサービスで SNI が有効になっている場合、仮想サーバーまたはサービスは、これらの証明書を発行します。SNI はいつでも有効にできます。

CLI を使用して複数のサーバー証明書を単一の SSL 仮想サーバーにバインドする

コマンドプロンプトで、次のコマンドを入力して SNI を構成し、構成を確認します。

set ssl vserver <vServerName>@ [-SNIEnable ( ENABLED | DISABLED )]

bind ssl vserver <vServerName>@ -certkeyName <string> -SNICert

show ssl vserver <vServerName>

CLI を使用して複数のサーバ証明書をトランスペアレントサービスにバインドするには、前述のコマンドでvserverをserviceにvservernameをサービス名に置き換えます。

注: -clearTextPort 80オプションを使用して SSL サービスを作成します。

GUI を使用して複数のサーバー証明書を単一の SSL 仮想サーバーにバインドする

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動します。
  2. SSL仮想サーバーを開き、「 証明書」で「 サーバー証明書」を選択します。
  3. 証明書を追加するか、リストから証明書を選択し、[SNI のサーバー証明書] をクリックします。
  4. [詳細設定]で、[SSL パラメータ]を選択します。
  5. [SNI 有効]をクリックします。

バックエンドサービスでの SNI のサポート

:SNI は DTLS バックエンドサービスではサポートされていません。

Citrix ADCアプライアンスは、バックエンドでサーバー名表示(SNI)をサポートしています。つまり、ハンドシェイクが正常に完了するために、共通名がクライアントの hello のサーバ名としてバックエンドサーバに送信されます。このサポートは、連邦システムインテグレータの顧客のセキュリティ要件を満たすのに役立ちます。また、SNI には、ファイアウォールで数百の異なる IP アドレスとポートを開くのではなく、1 つのポートだけを使用するという利点があります。

連邦システムインテグレーターの顧客のセキュリティ要件には、2012 R2 および WAP サーバーの Active Directory フェデレーションサービス (ADFS) 3.0 のサポートが含まれます。この要件を満たすには、Citrix ADCアプライアンスのバックエンドでのSNIのサポートが必要です。

注:

SNI が機能するには、クライアント hello のサーバ名が、SSL 仮想サーバにバインドされているバックエンドサービスで設定されているホスト名と一致する必要があります。たとえば、バックエンドサーバーのホスト名が www.mail.example.com の場合、SNI 対応のバックエンドサービスは、https://www.mail.example.comというサーバー名で構成する必要があります。そして、このホスト名は、クライアントのサーバー名と一致する必要があります hello。

バックエンドサービスでのダイナミック SNI のサポート

Citrix ADCアプライアンスは、バックエンドTLS接続で動的SNIをサポートします。つまり、アプライアンスはクライアント接続で SNI を学習し、それをサーバー側接続で使用します。SSL サービス、サービスグループ、またはプロファイルで共通名を指定する必要がなくなりました。クライアント Hello メッセージの SNI 拡張で受信した共通名は、バックエンド SSL 接続に転送されます。

以前は、SSL サービス、サービスグループ、および SSL プロファイルで静的 SNI を設定する必要がありました。その結果、設定されたスタティック SNI 拡張だけがサーバに送信されました。クライアントが同時に複数のドメインにアクセスする必要がある場合、ADC アプライアンスは、クライアントから受信した SNI をバックエンドサービスに送信できませんでした。代わりに、設定された静的な共通名を送信しました。バックエンドサーバーが複数のドメイン用に構成されている場合、サーバーはアプライアンスから Client Hello メッセージで受信した SNI に基づいて、正しい証明書で応答できます。

注意点:

  • フロントエンドで SNI を有効にし、正しい SNI 証明書を SSL 仮想サーバーにバインドする必要があります。フロントエンドで SNI を有効にしない場合、SNI 情報はバックエンドに渡されません。

  • サーバ認証が有効の場合、サーバ証明書は CA 証明書によって検証され、サーバ証明書の共通名/SAN エントリが SNI と一致します。したがって、CA 証明書はサービスにバインドする必要があります。

  • ダイナミック SNI が有効な場合、バックエンド接続と SSL セッションの再利用は SNI に基づきます。

ダイナミック SNI が有効の場合、SSL モニタは SNI を送信しません。SNI ベースのプローブの場合は、静的 SNI が設定されているバックエンドプロファイルを SSL モニタにアタッチします。モニタは、SNI と同じカスタムヘッダーで設定する必要があります。

CLI を使用してバックエンドサービスで SNI を構成する

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

add service <name>  <IP>  <serviceType>  <port>

add lb vserver <name>  <IPAddress> <serviceType>  <port>

bind lb vserver <name> <serviceName>

set ssl service <serviceName> -SNIEnable ENABLED -commonName <string>

set ssl profile <name> -SNIEnable ENABLED

例:

    add service service_ssl 198.51.100.100 SSL 443

    add lb vserver ssl-vs 203.0.113.200 SSL 443

    bind lb vserver ssl-vs service_ssl

    set ssl service service_ssl -SNIEnable ENABLED –commonName www.example.com

    set ssl profile sslprof -SNIEnable ENABLED

GUI を使用してバックエンドサービスで SNI を構成する

  1. [トラフィック管理] > [ロードバランシング] > [サービス]に移動します。
  2. SSL サービスを選択し、[詳細設定]で [SSL パラメータ] をクリックします。
  3. [SNI 有効]をクリックします。

    SNI を有効にします。

GUI を使用して SSL プロファイルで SNI を設定します

  1. [システム] > [プロファイル] > [SSL プロファイル] に移動します。
  2. [追加] をクリックします。
  3. [基本設定]で、[SNI 有効] を選択します。

    プロファイル内の SNI

  4. [OK] をクリックします。

SNI 対応のバックエンドサービスにセキュリティで保護されたモニタをバインドする

HTTP、HTTP-ECV、TCP、または TCP-ECV タイプのセキュアなモニタを、SNI をサポートするバックエンドサービスおよびサービスグループにバインドできます。ただし、ダイナミック SNI が有効の場合、モニタプローブは SNI 拡張を送信しません。SNI プローブを送信するには、バックエンド SSL プロファイルでスタティック SNI を有効にし、プロファイルをモニタにバインドします。モニタのカスタムヘッダーを、モニタプローブのクライアント hello で SNI 拡張として送信されるサーバ名に設定します。

CLI を使用して、セキュアモニタを SNI 対応のバックエンドサービスに設定し、バインドする

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

add lb monitor <monitorName> <type> -secure YES
add ssl profile <name> -sslProfileType BackEnd
set lb monitor <monitorName> <type> -customHeaders <string> -sslprofile <backend ssl profile>
set ssl profile <name> -sniEnable ENABLED -commonName <string>
bind service <name> -monitorName <string>

例:

add ssl profile sni_backend_profile -sslProfileType BackEnd
set ssl profile sni_backend_profile -sniEnable ENABLED -commonName example.com
add lb monitor http-ecv-mon HTTP-ECV -secure YES
set monitor http-ecv-mon HTTP-ECV -customHeaders "Host: example.com\r\n" -sslprofile sni_backend_profile
bind service ssl_service –monitorName http-ecv-mon

GUI を使用して、セキュアなモニタを SNI 対応のバックエンドサービスに設定し、バインドする

  1. [システム] > [プロファイル] > [SSL プロファイル] に移動します。
  2. [追加] をクリックします。
  3. プロファイルの名前を指定し、[SSL プロファイルタイプ] で [バックエンド] を選択します。

    SNI 対応の SSL プロファイル

  4. 共通名(ホストヘッダーと同じ)を指定し、[SNI Enable] を選択します。

    SNI 対応の SSL プロファイルの共通名

  5. [OK] をクリックします。
  6. [トラフィック管理] > [ロードバランシング] > [監視]に移動します。
  7. [追加] をクリックします。
  8. モニタの名前を指定します。[タイプ] で、[HTTP]、[HTTP-ECV]、[TCP]、または [TCP-ECV] を選択します。
  9. カスタムヘッダーを指定します。

    SNI 対応の SSL プロファイルのカスタムヘッダー

  10. セキュア」を選択します。
  11. [SSL プロファイル] で、前の手順で作成したバックエンド SSL プロファイルを選択します。
  12. [作成] をクリックします。

    SNI 対応の SSL プロファイルの作成

  13. [トラフィック管理] > [ロードバランシング] > [サービス]に移動します。
  14. SSL サービスを選択し、[編集] をクリックします。
  15. モニター」で、「 バインドの追加」をクリックし、前述の手順で作成したモニターを選択して「 バインド」をクリックします。

    SNI 対応の SSL サービスにセキュアモニタをバインド

GUI を使用して、セキュアなモニターを構成し、SNI 対応のバックエンドサービスにバインドする

  1. [トラフィック管理] > [負荷分散] > [監視] に移動します。
  2. HTTP-ECV または TCP-ECV タイプのモニターを追加し、 カスタムヘッダーを 指定します。
  3. [Create] を選択します。
  4. [トラフィック管理] > [ロードバランシング] > [サービス] に移動します。
  5. SSL サービスを選択し、[編集] をクリックします。
  6. モニター」で「 バインドの追加」をクリックし、手順3で作成したモニターを選択して「 バインド」をクリックします。

証明書とキーのペアの追加または更新

注:

既存の証明書とキーがない場合は、「証明書の作成」を参照してください。

ECDSA 証明書とキーペアを作成するには、ECDSA 証明書とキーペアの作成をクリックします。

ビルド 41.x から、63 文字までの証明書名がサポートされます。

SSL トランザクションの場合、サーバーには有効な証明書と、対応する秘密鍵と公開鍵のペアが必要です。SSL データは、サーバーの証明書を通じて利用可能な、サーバーの公開キーで暗号化されます。復号化には、対応する秘密キーが必要です。SSL証明書とキーのペアの追加時に使用される秘密キーのパスワードは、Citrix ADCアプライアンスごとに一意の暗号化キーを使用して保存されます。

ADCアプライアンスは、SSLトランザクションをサーバからオフロードします。したがって、サーバーの証明書と秘密鍵がアプライアンス上に存在する必要があり、証明書は対応する秘密鍵とペアにする必要があります。この証明書とキーのペアは、SSL トランザクションを処理する仮想サーバーにバインドする必要があります。

注: Citrix ADCアプライアンスのデフォルトの証明書は2048ビットです。以前のビルドでは、デフォルトの証明書は 512 ビットまたは 1024 ビットでした。リリース 11.0 にアップグレードした後、"ns-"で始まる古い証明書とキーのペアをすべて削除してから、アプライアンスを再起動して、2048 ビットのデフォルト証明書を自動的に生成する必要があります。

証明書とキーの両方がアプライアンスに追加される前に、Citrix ADCアプライアンスのローカルストレージにある必要があります。証明書またはキーファイルがアプライアンス上にない場合は、ペアを作成する前にアプライアンスにアップロードします。

重要: 証明書とキーは、デフォルトで /nsconfig/ssl ディレクトリに保存されます。証明書またはキーが他の場所に保存されている場合は、Citrix ADCアプライアンス上のファイルへの絶対パスを指定する必要があります。Citrix ADC FIPSアプライアンスは、外部キー(非FIPSキー)をサポートしていません。FIPS アプライアンスでは、ハードディスクやフラッシュメモリなどのローカルストレージデバイスからキーをロードすることはできません。FIPS キーは、アプライアンスのハードウェアセキュリティモジュール (HSM) に存在する必要があります。

Citrix ADC MPX アプライアンスおよびCitrix ADC FIPS アプライアンスでは、RSA 秘密キーのみがサポートされます。VPX仮想アプライアンスでは、RSA秘密鍵とDSA秘密鍵の両方がサポートされています。SDX アプライアンスでは、SSL チップがインスタンスに割り当てられている場合、RSA 秘密キーのみがサポートされます。ただし、SSL チップがインスタンスに割り当てられていない場合は、RSA 秘密キーと DSA 秘密キーの両方がサポートされます。いずれの場合も、CA 証明書を RSA キーまたは DSA キーでバインドできます。

通知期間を設定し、有効期限モニタで証明書の有効期限が切れる前にプロンプトを発行できるようにします。

Citrix ADCアプライアンスは、証明書と秘密キーファイルの次の入力形式をサポートしています。

  • PEM-プライバシー強化メール
  • DER-識別符号化規則
  • PFX-個人情報交換

ソフトウェアは、自動的にフォーマットを検出します。したがって、informパラメータでフォーマットを指定する必要はなくなりました。形式を指定した場合(正しいか正しくない)、ソフトウェアはその形式を無視します。証明書とキーファイルの形式は同じである必要があります。

注: 証明書は、次のいずれかのハッシュアルゴリズムを使用して署名する必要があります。

  • MD5
  • SHA-1
  • SHA-224
  • SHA-256
  • SHA-384(フロントエンドでのみサポート)
  • SHA-512(フロントエンドでのみサポート)

MPX アプライアンスは、次のサイズまで 512 ビット以上の証明書をサポートします。

  • 仮想サーバー上の 4096 ビットサーバー証明書
  • サービス上の 4096 ビットクライアント証明書
  • 4096 ビット CA 証明書(中間証明書とルート証明書を含む)
  • バックエンドサーバー上の 4096 ビット証明書
  • 4096 ビットのクライアント証明書 (仮想サーバーでクライアント認証が有効になっている場合)

VPX仮想アプライアンスは、次のサイズまで512ビット以上の証明書をサポートします。

  • 仮想サーバー上の 4096 ビットサーバー証明書
  • サービス上の 4096 ビットクライアント証明書
  • 4096 ビット CA 証明書(中間証明書とルート証明書を含む)
  • バックエンドサーバー上の 4096 ビット証明書
  • 2048 ビットのクライアント証明書 (仮想サーバーでクライアント認証が有効になっている場合)

Citrix ADC SDXアプライアンスは、512ビット以上の証明書をサポートしています。アプライアンスでホストされる各Citrix ADC VPXインスタンスは、VPX仮想アプライアンスの以前の証明書サイズをサポートします。ただし、SSL チップがインスタンスに割り当てられている場合、そのインスタンスは MPX アプライアンスでサポートされている証明書サイズをサポートします。

CLI を使用した証明書とキーのペアの追加

コマンドプロンプトで次のコマンドを入力して、証明書とキーのペアを追加し、構成を確認します。

add ssl certKey <certkeyName> -cert <string>[(-key <string> [-password]) | -fipsKey <string>] [-inform ( DER | PEM )] [<passplain>] [-expiryMonitor ( ENABLED | DISABLED ) [-notificationPeriod <positive_integer>]]

show ssl certKey [<certkeyName>]

例:

add ssl certKey sslckey -cert server_cert.pem -key server_key.pem -password ssl -expiryMonitor ENABLED -notificationPeriod 30
 Done
Note: For FIPS appliances, replace -key with -fipskey

show ssl certKey sslckey
        Name: sslckey           Status: Valid,   Days to expiration:8418
        Version: 3
        Serial Number: 01
        Signature Algorithm: md5WithRSAEncryption
        Issuer:  C=US,ST=SJ,L=SJ,O=NS,OU=NSSSL,CN=www.root.com
        Validity
                Not Before: Jul 15 02:25:01 2005 GMT
                Not After : Nov 30 02:25:01 2032 GMT
        Subject:  C=US,ST=SJ,L=SJ,O=NS,OU=NSSSL,CN=www.server.com
        Public Key Algorithm: rsaEncryption
        Public Key size: 2048
 Done

CLI を使用して証明書とキーのペアを更新または削除する

証明書とキーペアの有効期限モニタまたは通知期間を変更するには、set ssl certkey コマンドを使用します。証明書とキーのペアの証明書またはキーを置き換えるには、update ssl certkey コマンドを使用します。update ssl certkeyコマンドには、ドメインチェックをオーバーライドするための追加のパラメータがあります。どちらのコマンドでも、既存の証明書とキーペアの名前を入力します。SSL 証明書のキーペアを削除するには、rm ssl certkeyコマンドを使用します。このコマンドは、<certkeyName> 引数だけを受け入れます。

例:

set ssl certKey <certkeyName> [-expiryMonitor ( ENABLED | DISABLED )
       [-notificationPeriod <positive_integer>]]

update ssl certKey <certkeyName> [-cert <string> [-password]] [-key
       <string> | -fipsKey <string>] [-inform <inform>] [-noDomainCheck]

GUI を使用した証明書とキーのペアの追加または更新

  1. [トラフィック管理] > [SSL] > [証明書] > [サーバー]に移動します。

    証明書のインストール

  2. 次のパラメータの値を入力し、[Install] をクリックします。

    • 証明書とキーのペア名-証明書と秘密キーのペアの名前。

    • [証明書ファイル名]-認証局から受信した署名付き証明書。

    • [Key File Name]:証明書とキーのペアの形成に使用される秘密キーファイルの名前、および任意でパス。

    タイプ値

証明書とキーのペアを SSL 仮想サーバーにバインドする

重要:証明書を SSL 仮想サーバーにバインドする前に、中間証明書をこの証明書にリンクします。証明書のリンクについては、一連の証明書を作成するを参照してください。

SSL トランザクションの処理に使用される証明書は、SSL データを受信する仮想サーバーにバインドする必要があります。SSL データを受信する仮想サーバが複数ある場合は、有効な証明書とキーのペアをそれぞれにバインドする必要があります。

Citrix ADCアプライアンスにアップロードした有効な既存のSSL証明書を使用します。テスト用の代わりに、アプライアンスで独自の SSL 証明書を作成します。アプライアンスで FIPS キーを使用して作成された中間証明書は、SSL 仮想サーバーにバインドできません。

SSL ハンドシェイク中に、クライアント認証中の証明書要求メッセージに、サーバーは、サーバーにバインドされているすべての証明機関 (CA) の識別名 (DN) を一覧表示します。サーバーは、このリストからのみクライアント証明書を受け入れます。特定の CA 証明書の DN 名を SSL クライアントに送信しない場合は、skipCA フラグを設定します。この設定は、特定の CA 証明書の識別名を SSL クライアントに送信してはならないことを示します。

独自の証明書を作成する方法の詳細については、「証明書の管理」を参照してください。

注:信頼できる認証局が発行する有効なSSL証明書のみを使用することをお勧めします。

CLI を使用して SSL 証明書とキーのペアを仮想サーバーにバインドする

コマンドプロンプトで次のコマンドを入力して、SSL 証明書とキーのペアを仮想サーバーにバインドし、構成を確認します。

-  bind ssl vserver <vServerName> -certkeyName <certificate-KeyPairName> -CA -skipCAName
-  show ssl vserver <vServerName>

例:

bind ssl vs vs1 -certkeyName cert2 -CA -skipCAName
 Done
sh ssl vs vs1

 Advanced SSL configuration for VServer vs1:

 DH: DISABLED

 Ephemeral RSA: ENABLED Refresh Count: 0

 Session Reuse: ENABLED Timeout: 120 seconds

 Cipher Redirect: DISABLED

 SSLv2 Redirect: DISABLED

 ClearText Port: 0

 Client Auth: DISABLED

 SSL Redirect: DISABLED

 Non FIPS Ciphers: DISABLED

 SNI: DISABLED

 OCSP Stapling: DISABLED

 HSTS: DISABLED

 IncludeSubDomains: NO

 HSTS Max-Age: 0

 SSLv2: DISABLED SSLv3: ENABLED  TLSv1.0: ENABLED  TLSv1.1: DISABLED  TLSv1.2: DISABLED

 Push Encryption Trigger: Always

 Send Close-Notify: YES

 Strict Sig-Digest Check: DISABLED

ECC Curve: P_256, P_384, P_224, P_521

 1) CertKey Name: cert1 CA Certificate OCSPCheck: Optional CA_Name Sent
 2) CertKey Name: cert2 CA Certificate OCSPCheck: Optional CA_Name Skipped
 1) Cipher Name: DEFAULT

Description: Default cipher list with encryption strength >= 128bit
Done

CLI を使用して仮想サーバから SSL 証明書とキーのペアをバインド解除する

unbind ssl certKey <certkeyName> コマンドを使用して仮想サーバから証明書とキーのペアをバインド解除しようとすると、エラーメッセージが表示されます。コマンドの構文が変更されたため、エラーが表示されます。コマンドプロンプトで、次のコマンドを入力します。

unbind ssl vserver <vServerName> -certkeyName <string>

例:

unbind ssl vserver vssl -certkeyName sslckey

GUI を使用して SSL 証明書とキーのペアを仮想サーバーにバインドする

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、SSL 仮想サーバーを開きます。[証明書] セクション内をクリックします。

    仮想サーバーへの証明書のバインド

  2. 矢印をクリックして、証明書とキーのペアを選択します。

    矢印をクリックして証明書とキーのペアを選択

  3. リストから証明書とキーのペアを選択します。

    証明書とキーのペアの選択

  4. 証明書とキーのペアを仮想サーバにバインドします。サーバー証明書を SNI 証明書として追加するには、[SNI のサーバー証明書] を選択します。

    証明書を仮想サーバーにバインドする

SSL 仮想サーバのパラメータ

SSL 仮想サーバーの高度な SSL 構成を設定します。SSL プロファイルでは、これらのパラメータの多くを設定することもできます。SSL プロファイルで設定できるパラメータの詳細については、「SSL プロファイルパラメータ」を参照してください。

CLI を使用した SSL 仮想サーバーのパラメータの設定

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

set ssl vserver <vServerName>@ [-clearTextPort <port>] [-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>]] [-sslv2Redirect ( ENABLED | DISABLED )[-sslv2URL <URL>]] [-clientAuth ( ENABLED | DISABLED ) [-clientCert ( Mandatory | Optional )]] [-sslRedirect ( ENABLED | DISABLED )][-redirectPortRewrite ( ENABLED | DISABLED )] [-ssl2 ( ENABLED | DISABLED )] [-ssl3 ( ENABLED | DISABLED )] [-tls1 ( ENABLED | DISABLED )] [-tls11 ( ENABLED | DISABLED )] [-tls12 ( ENABLED | DISABLED )][-tls13 ( ENABLED | DISABLED )] [-SNIEnable ( ENABLED | DISABLED )][-ocspStapling ( ENABLED | DISABLED )] [-pushEncTrigger <pushEncTrigger>] [-sendCloseNotify ( YES | NO )] [-dtlsProfileName <string>] [-sslProfile <string>] [-HSTS ( ENABLED | DISABLED )][-maxage <positive_integer>] [-IncludeSubdomains ( YES | NO )][-strictSigDigestCheck ( ENABLED | DISABLED )] [-zeroRttEarlyData (ENABLED | DISABLED )] [-tls13SessionTicketsPerAuthContext <positive_integer>] [-dheKeyExchangeWithPsk ( YES | NO )]

Diffie-Hellman (DH) パラメーター

SSL トランザクションを設定するために DH キー交換を必要とするアプライアンスで暗号を使用するには、アプライアンスで DH キー交換を有効にします。ネットワークに基づいてその他の設定を行います。

CLI を使用して DH パラメータを設定する必要がある暗号を一覧表示するには、「sh cipher DH」と入力します。

設定ユーティリティを使用して DH パラメータを設定する必要がある暗号を一覧表示するには、[トラフィック管理] > [SSL] > [暗号グループ]に移動し、[DH] をダブルクリックします。

DH キー交換を有効にする方法の詳細については、Diffie-Hellman (DH) キーを生成するを参照してください。

CLI を使用した DH パラメータの設定

コマンドプロンプトで、次のコマンドを入力して DH パラメーターを構成し、構成を確認します。

-  `set ssl vserver <vserverName> -dh <Option> -dhCount <RefreshCountValue> -filepath <string>
-  show ssl vserver <vServerName>`

例:

set ssl vserver vs-server -dh ENABLED  -dhFile /nsconfig/ssl/ns-server.cert -dhCount 1000
Done

show ssl vserver vs-server

            Advanced SSL configuration for VServer vs-server:
            DH: ENABLED
            Ephemeral RSA: ENABLED          Refresh Count: 1000
            Session Reuse: ENABLED          Timeout: 120 seconds
            Cipher Redirect: DISABLED
            SSLv2 Redirect: DISABLED
            ClearText Port: 0
            Client Auth: DISABLED
            SSL Redirect: DISABLED
            Non FIPS Ciphers: DISABLED
            SNI: DISABLED
            OCSP Stapling: DISABLED
            HSTS: DISABLED
            HSTS IncludeSubDomains: NO
            HSTS Max-Age: 0
            SSLv2: DISABLED SSLv3: ENABLED  TLSv1.0: ENABLED TLSv1.2: ENABLED  TLSv1.2: ENABLED

    1)      Cipher Name: DEFAULT
            Description: Predefined Cipher Alias
Done

GUI を使用して DH パラメータを構成する

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、仮想サーバーを開きます。
  2. [SSL パラメータ] セクションで、[DH パラメータを有効にする] を選択し、更新回数とファイルパスを指定します。

Ephemeral RSA

Ephemeral RSA を使用すると、サーバ証明書がエクスポートクライアント(1024 ビット証明書)をサポートしていない場合でも、エクスポートクライアントはセキュアサーバと通信できます。エクスポートクライアントがセキュア Web オブジェクトまたはリソースにアクセスできないようにするには、一時的な RSA キー交換を無効にする必要があります。

デフォルトでは、この機能はCitrix ADCアプライアンスで有効になっており、更新回数はゼロ(無限使用)に設定されています。

注:

一時的 RSA キーは、エクスポート暗号を SSL または TCP ベースの SSL 仮想サーバーまたはサービスにバインドするときに自動的に生成されます。エクスポート暗号を削除しても、eRSA キーは削除されません。別のエクスポート暗号が SSL または TCP ベースの SSL 仮想サーバーまたはサービスにバインドされると、後で再利用されます。eRSA キーは、システムの再起動時に削除されます。

CLI を使用したEphemeral RSAの構成

コマンド・プロンプトで次のコマンドを入力して、一時RSAを構成し、構成を確認します。

set ssl vserver <vServerName> -eRSA (enabled | disabled) -eRSACount <positive_integer>
show ssl vserver <vServerName>

例:

set ssl vserver vs-server -eRSA ENABLED -eRSACount 1000
 Done

show ssl vserver vs-server

        Advanced SSL configuration for VServer vs-server:
        DH: DISABLED
        Ephemeral RSA: ENABLED          Refresh Count: 1000
        Session Reuse: ENABLED          Timeout: 120 seconds
        Cipher Redirect: DISABLED
        SSLv2 Redirect: DISABLED
        ClearText Port: 0
        Client Auth: DISABLED
        SSL Redirect: DISABLED
        Non FIPS Ciphers: DISABLED
        SNI: DISABLED
        OCSP Stapling: DISABLED
        HSTS: DISABLED
        HSTS IncludeSubDomains: NO
        HSTS Max-Age: 0
        SSLv2: DISABLED SSLv3: ENABLED  TLSv1.0: ENABLED TLSv1.2: ENABLED  TLSv1.2: ENABLED

1)      Cipher Name: DEFAULT
        Description: Predefined Cipher Alias
 Done

GUI を使用した一時的な RSA の構成

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、仮想サーバーを開きます。
  2. SSLパラメータ 」セクションで、「 一時RSAを有効にする」を選択し、リフレッシュ回数を指定します。

セッションの再利用

SSL トランザクションの場合、初期 SSL ハンドシェイクを確立するには、CPU 負荷の高い公開キー暗号化操作が必要です。ほとんどのハンドシェイク操作は、SSL セッションキー(クライアントキー交換メッセージ)の交換に関連付けられています。クライアントセッションがしばらくアイドル状態になってから再開されると、SSL ハンドシェイクは通常、何度も実行されます。セッションの再利用を有効にすると、クライアントから受信したセッション再開要求に対してセッションキーの交換が回避されます。

Citrix ADCアプライアンスでは、セッションの再利用がデフォルトで有効になっています。この機能を有効にすると、サーバーの負荷が軽減され、応答時間が短縮され、サーバーがサポートできる SSL トランザクション/秒 (TPS) の数が増加します。

CLI を使用したセッションの再利用の設定

コマンドプロンプトで次のコマンドを入力して、セッションの再利用を構成し、構成を確認します。

set ssl vserver <vServerName> -sessReuse ( ENABLED | DISABLED ) -sessTimeout <positive_integer>
show ssl vserver <vServerName>

例:

set ssl vserver vs-ssl -sessreuse enabled -sesstimeout 600
 Done

show ssl vserver vs-ssl

        Advanced SSL configuration for VServer vs-ssl:
        DH: DISABLED
        Ephemeral RSA: ENABLED          Refresh Count: 1000
        Session Reuse: ENABLED          Timeout: 600 seconds
        Cipher Redirect: DISABLED
        SSLv2 Redirect: DISABLED
        ClearText Port: 0
        Client Auth: DISABLED
        SSL Redirect: DISABLED
        Non FIPS Ciphers: DISABLED
        SNI: DISABLED
        OCSP Stapling: DISABLED
        HSTS: DISABLED
        HSTS IncludeSubDomains: NO
        HSTS Max-Age: 0
        SSLv2: DISABLED SSLv3: ENABLED  TLSv1.0: ENABLED TLSv1.2: ENABLED  TLSv1.2: ENABLED

1)      CertKey Name: Auth-Cert-1       Server Certificate

1)      Cipher Name: DEFAULT
        Description: Predefined Cipher Alias
 Done

GUI を使用したセッションの再利用の構成

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、仮想サーバーを開きます。
  2. SSLパラメータ 」セクションで、「 セッション再利用を有効にする 」を選択し、セッションをアクティブにしておく時間を指定します。

SSL プロトコルの設定

Citrix ADCアプライアンスは、SSLv3、TLSv1、TLSv1.1、およびTLSv1.2の各プロトコルをサポートしています。これらの各プロトコルは、デプロイメントとアプライアンスに接続するクライアントのタイプに応じてアプライアンスに設定できます。

TLS プロトコルバージョン 1.0、1.1、および 1.2 は、古いバージョンの TLS/SSL プロトコルよりも安全です。ただし、レガシーシステムをサポートするために、多くの TLS 実装は SSLv3 プロトコルとの下位互換性を維持しています。SSLハンドシェイクでは、クライアントとCitrix ADCアプライアンスで構成されたSSL仮想サーバーに共通する最高のプロトコルバージョンが使用されます。

最初のハンドシェイク試行では、TLS クライアントがサポートする最高のプロトコルバージョンを提供します。ハンドシェイクが失敗した場合、クライアントはより低いプロトコルバージョンを提供します。たとえば、TLS バージョン 1.1 のハンドシェイクが成功しなかった場合、クライアントは TLSv1.0 プロトコルを提供して再ネゴシエーションを試みます。この試行が失敗した場合、クライアントは SSLv3 プロトコルを使用して再試行します。「中間者」(MITM)攻撃者は、最初のハンドシェイクを破り、SSLv3 プロトコルとの再ネゴシエーションをトリガーし、SSLv3 の脆弱性を悪用する可能性があります。このような攻撃を軽減するには、SSLv3 を無効にするか、ダウングレードされたプロトコルを使用した再ネゴシエーションを許可しないようにします。ただし、展開にレガシーシステムが含まれている場合、この方法は実用的ではない可能性があります。別の方法として、クライアント要求でシグナリング暗号スイート値(TLS_FALLBACK_SCSV)を認識する方法があります。

クライアントの hello メッセージの TLS_FALLBACK_SCSV 値は、クライアントが以前に上位のプロトコルバージョンで接続しようとしたことがあり、現在の要求がフォールバックであることを仮想サーバに示します。仮想サーバがこの値を検出し、クライアントが示したバージョンよりも高いバージョンをサポートしている場合、致命的なアラートで接続を拒否します。次のいずれかの条件が満たされると、ハンドシェイクは成功します。

  • TLS_FALLBACK_SCSV 値がクライアントの hello メッセージに含まれません。
  • クライアント hello のプロトコルバージョンは、仮想サーバでサポートされている最も高いプロトコルバージョンです。

CLI を使用した SSL プロトコルのサポートの設定

コマンドプロンプトで次のコマンドを入力して、SSL プロトコルサポートを構成し、構成を確認します。

set ssl vserver <vServerName> -ssl2 ( ENABLED | DISABLED ) -ssl3 ( ENABLED | DISABLED ) -tls1 ( ENABLED | DISABLED ) -tls11 ( ENABLED | DISABLED ) -tls12 ( ENABLED | DISABLED )

show ssl vserver <vServerName>

例:

set ssl vserver vs-ssl -tls11 ENABLED -tls12 ENABLED
Done

sh ssl vs vs-ssl

        Advanced SSL configuration for VServer vs-ssl:
            DH: DISABLED
            Ephemeral RSA: ENABLED                            Refresh Count: 0
            Session Reuse: ENABLED                              Timeout: 120 seconds
            Cipher Redirect: DISABLED
            SSLv2 Redirect: DISABLED
            ClearText Port: 0
            Client Auth: DISABLED
            SSL Redirect: DISABLED
            Non FIPS Ciphers: DISABLED
            SNI: DISABLED
            SSLv2: DISABLED        SSLv3: ENABLED    TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED
            Push Encryption Trigger: Always
            Send Close-Notify: YES
            1 bound certificate:

    1)      CertKey Name: mycert  Server Certificate
            1 configured cipher:

    1)      Cipher Name: DEFAULT
            Description: Predefined Cipher Alias

Done

GUI を使用して SSL プロトコルのサポートを構成する

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、仮想サーバーを開きます。
  2. [SSL パラメータ] セクションで、有効にするプロトコルを選択します。

クローズ通知

クローズ通知は、SSL データ伝送の終了を示す安全なメッセージです。グローバルレベルでは、クローズ通知の設定が必要です。この設定は、すべての仮想サーバー、サービス、およびサービスグループに適用されます。グローバル設定の詳細については、このページの後半の「グローバル SSL パラメーター」を参照してください。

グローバル設定に加えて、仮想サーバ、サービス、またはサービスグループレベルで close-notify パラメータを設定できます。したがって、1 つのエンティティに対してパラメータを設定し、別のエンティティに対してパラメータを設定解除する柔軟性が得られます。ただし、このパラメータはグローバルレベルで設定してください。それ以外の場合、エンティティレベルでの設定は適用されません。

CLI を使用してエンティティレベルでクローズ通知を構成する

コマンドプロンプトで、次のいずれかのコマンドを入力して、close-notify機能を構成し、構成を確認します。

  1. 仮想サーバレベルで構成するには、次のように入力します。
set ssl vserver <vServerName> -sendCloseNotify ( YES | NO )
show ssl vserver <vServerName>
  1. サービスレベルで構成するには、次のように入力します。
set ssl service <serviceName> -sendCloseNotify ( YES | NO )
show ssl service <serviceName>
  1. サービスグループレベルで構成するには、次のように入力します。
set ssl serviceGroup <serviceGroupName> -sendCloseNotify ( YES | NO )
show ssl serviceGroup <serviceGroupName>

例:

set ssl vserver sslvsvr -sendCloseNotify YES

Done

GUI を使用してエンティティレベルでクローズ通知機能を構成する

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、仮想サーバーを開きます。
  2. SSLパラメータ 」セクションで、「 クローズ通知の送信 」を選択します。

グローバル SSL パラメータ

SSL 設定の高度なカスタマイズにより、特定の問題に対処できます。 set ssl parameterコマンドまたは構成ユーティリティを使用して、次の項目を指定できます。

  • SSL トランザクションに使用される量子サイズ。
  • CRL メモリサイズ。
  • OCSP キャッシュサイズ。
  • SSL 再ネゴシエーションを拒否します。
  • 復号化、暗号化、またはすべてのレコードに対して PUSH フラグを設定します。
  • クライアントが 1 つのドメインのハンドシェイクを開始し、別のドメインに HTTP 要求を送信した場合は、要求をドロップします。
  • 暗号化がトリガーされるまでの時間を設定します。 注:指定した時刻は、 set ssl vserver コマンドまたは設定ユーティリティを使用してタイマーベースの暗号化を設定した場合のみ適用されます。
  • NDCPPコンプライアンス証明書チェック:アプライアンスがクライアント(バックエンド接続)で動作する場合に適用されます。証明書の検証中に、SSL 証明書に SAN が存在する場合は、共通名を無視します。
  • MPX 14000 などの Cavium チップベースのアプライアンスと、パケットエンジンの数が異なる MPX 15000 アプライアンスなどの Intel Coleto チップベースのアプライアンスの異種クラスタを有効にします。(リリース13.0 build 47.xからサポートが追加されました)。
  • バックエンドでセキュアな再ネゴシエーションを有効にします(リリース 1.0 build 58.x からサポートが追加されました)。
  • 適応型 SSL トラフィック制御 (リリース 13.0 ビルド 58.x から追加されたサポート)。

CLI を使用してグローバル SSL パラメータを設定する

コマンドプロンプトで次のコマンドを入力して、SSL の詳細設定を構成し、構成を確認します。

set ssl parameter [-quantumSize <quantumSize>] [-crlMemorySizeMB <positive_integer>] [-strictCAChecks (YES | NO)] [-sslTriggerTimeout <positive_integer>] [-sendCloseNotify (YES | NO)] [-encryptTriggerPktCount <positive_integer>] [-denySSLReneg <denySSLReneg>] [-insertionEncoding (Unicode|UTF-8)] [-ocspCacheSize <positive_integer>][- pushFlag <positive_integer>] [- dropReqWithNoHostHeader (YES | NO)] [-pushEncTriggerTimeout <positive_integer>] [-ndcppComplianceCertCheck ( YES | NO)] [-heterogeneousSSLHW (ENABLED | DISABLED )]
show ssl parameter

例:

set ssl parameter -quantumSize 8 -crlMemorySizeMB 256 -strictCAChecks no -ssltriggerTimeout 100 -sendClosenotify no -encryptTriggerPktCount 45 -denySSLReneg NONSECURE -insertionEncoding unicode -ocspCacheSize 10 -pushFlag 3 -dropReqWithNoHostHeader YES  -pushEncTriggerTimeout 100 ms -ndcppComplianceCertCheck YES
Done

show ssl parameter
Advanced SSL Parameters
-----------------------
    SSL quantum size                                      : 8 KB
    Max CRL memory size                                   : 256 MB
    Strict CA checks                                      : NO
    Encryption trigger timeout                            : 100 ms
    Send Close-Notify                                     : NO
    Encryption trigger packet count                       : 45
    Deny SSL Renegotiation                                : NONSECURE
    Subject/Issuer Name Insertion Format                  : Unicode
    OCSP cache size                                       : 10 MB
    Push flag                                             : 0x3 (On every decrypted and encrypted record)
    Strict Host Header check for SNI enabled SSL sessions : YES
    PUSH encryption trigger timeout                       : 100 ms
    Crypto Device Disable Limit                           : 0
    Global undef action for control policies              : CLIENTAUTH
    Global undef action for data policies                 : NOOP
    Default profile                                       : DISABLED
    SSL Insert Space in Certificate Header                : YES
    Disable TLS 1.1/1.2 for SSL_BRIDGE secure monitors    : NO
    Disable TLS 1.1/1.2 for dynamic and VPN services      : NO
    Software Crypto acceleration CPU Threshold            : 0
    Hybrid FIPS Mode                                      : DISABLED
    Signature and Hash Algorithms supported by TLS1.2     : ALL
    SSL Interception Error Learning and Caching           : DISABLED
    SSL Interception Maximum Error Cache Memory           : 0 Bytes
    NDCPP Compliance Certificate Check                    : YES
    Heterogeneous SSL HW (Cavium and Intel Based)         : ENABLED
 Done

GUI を使用した NDCPP コンプライアンス証明書チェックの構成

  1. [トラフィック管理] > [SSL] に移動し、 [設定] グループで [SSL の詳細設定の変更] を選択します。

    詳細設定の変更

  2. [NDCPP コンプライアンス証明書チェック]を選択します。[OK] をクリックします。

    NDCPP コンプライアンス証明書のチェック

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 parameter -denySSLReneg <denySSLReneg>

例:

set ssl parameter -denySSLReneg NONSECURE
 Done

sh ssl parameter
Advanced SSL Parameters
-----------------------
    SSL quantum size                                      : 8 KB
    Max CRL memory size                                   : 256 MB
    Strict CA checks                                      : NO
    Encryption trigger timeout                            : 100 ms
    Send Close-Notify                                     : YES
    Encryption trigger packet count                       : 45
    Deny SSL Renegotiation                                : NONSECURE
    Subject/Issuer Name Insertion Format                  : Unicode
    OCSP cache size                                       : 10 MB
    Push flag                                             : 0x0 (Auto)
    Strict Host Header check for SNI enabled SSL sessions : NO
    Match HTTP Host header with SNI                       : CERT
    PUSH encryption trigger timeout                       : 1 ms
    Crypto Device Disable Limit                           : 0
    Global undef action for control policies              : CLIENTAUTH
    Global undef action for data policies                 : NOOP
    Default profile                                       : ENABLED
    SSL Insert Space in Certificate Header                : YES
    Disable TLS 1.1/1.2 for SSL_BRIDGE secure monitors    : NO
    Disable TLS 1.1/1.2 for dynamic and VPN services      : NO
    Software Crypto acceleration CPU Threshold            : 0
    Hybrid FIPS Mode                                      : DISABLED
    Signature and Hash Algorithms supported by TLS1.2     : ALL
    SSL Interception Error Learning and Caching           : DISABLED
    SSL Interception Maximum Error Cache Memory           : 0 Bytes
    NDCPP Compliance Certificate Check                    : NO
    Heterogeneous SSL HW (Cavium and Intel Based)         : DISABLED
    Crypto Operation Queue Limit                          : 150%
 Done

GUI を使用したセキュアな再ネゴシエーションの有効化

  1. [トラフィック管理]>[SSL]>[SSLの詳細設定の変更] に移動します。
  2. [SSL 再ネゴシエーションの拒否] を [ALL] 以外の値に設定します。

    バックエンドセキュアリネゴシエーショングローバルパラメータ

適応型 SSL トラフィック制御

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

アプライアンスで大量のトラフィックを受信し、暗号アクセラレーション容量がいっぱいになると、アプライアンスは後で処理するためにキューイング接続を開始します。現在、このキューのサイズは 64 K に固定されており、この値を超えると、アプライアンスは接続の切断を開始します。

リリース 13.0 build 58.x から、ユーザーは実際の容量に対するパーセンテージの値を設定できます。この機能拡張により、キュー内のエレメント数が適応的かつ動的に計算された制限を超えると、アプライアンスは新しい接続をドロップします。このアプローチは、着信 SSL 接続を制御し、過剰なリソース消費や、負荷分散監視の障害や安全なアプリケーションへの応答が遅いなどのその他の障害を防止します。

キューが空の場合、アプライアンスは接続を受け入れ続けることができます。キューが空でない場合、暗号システムは容量に達しており、アプライアンスはキューイング接続を開始します。

制限は、以下に基づいて計算されます。

  • アプライアンスの実際の容量。
  • 実際の容量に対するパーセンテージとしてユーザーによって構成される値。デフォルト値は 150% に設定されています。

たとえば、アプライアンスの実際の容量が所定の時間に 1000 動作/秒で、デフォルトの割合が設定されている場合、アプライアンスが接続を切断するまでの制限は 1500(1000 の 150%)になります。

CLI を使用して操作キュー制限を設定するには

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

set ssl parameter -operationQueueLimit <positive_integer>

Operation Queue Limit :暗号操作キューの容量に対する割合(%)。この値を超えると、キューが減少するまで新しい SSL 接続が受け入れられません。デフォルト値:150 最小値:0。最大値:10000

GUI を使用して操作キュー制限を構成するには

  1. [トラフィック管理] > [SSL]に移動します。
  2. [設定] で、[SSL の詳細設定の変更] をクリックします。
  3. 操作キュー制限」に値を入力します。デフォルトは 150 です。
  4. [OK] をクリックします。

    工程キュー制限

異機種混在クラスタの展開

リリース13.0 build 47.xから、SSLパラメータ「異種SSL HW」を「ENABLED」に設定することで、異なる数のパケットエンジンを使用してCitrix ADC MPXアプライアンスの異種クラスタ展開を形成できます。たとえば、Cavium チップベースのアプライアンス (MPX 14000 または類似) とインテル Coleto チップベースのアプライアンス (MPX 15000 または類似) のクラスタを形成するには、SSL パラメータ「異種の SSL HW」を有効にします。同じチップを使用してプラットフォームのクラスタを形成するには、このパラメータのデフォルト値(DISABLED)を維持します。

注: この機能は、Citrix ADC SDXアプライアンスでホストされているVPXインスタンスではサポートされません。

異種クラスタの形成でサポートされるプラットフォームの詳細については、「https://docs.citrix.com/ja-jp/citrix-adc/13/clustering/support-for-heterogeneous-cluster.html」を参照してください。

CLI を使用した異機種クラスターの有効化

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

set ssl parameter -heterogeneousSSLHW ENABLED

GUI を使用した異機種クラスタの有効化

  1. [トラフィック管理] > [SSL] に移動し、 [設定] グループで [SSL の詳細設定の変更] を選択します。
  2. [異機種間SSL HW] を選択します。[OK] をクリックします。

    異種の SSL ハードウェア設定

PUSH フラグベースの暗号化トリガーメカニズム

PSH TCP フラグに基づく暗号化トリガーメカニズムにより、次のことが可能になります。

  • PSH フラグが設定されている連続したパケットを 1 つの SSL レコードにマージするか、PSH フラグを無視します。
  • タイマーベースの暗号化を実行します。タイムアウト値は、set ssl parameter -pushEncTriggerTimeout <positive_integer> コマンドを使用してグローバルに設定されます。

CLI を使用して PUSH フラグベースの暗号化を構成する

コマンドプロンプトで次のコマンドを入力して、PUSH フラグベースの暗号化を構成し、構成を確認します。

set ssl vserver <vServerName> [-pushEncTrigger <pushEncTrigger>]

show ssl vserver

例:

set ssl vserver vserver1 -pushEncTrigger always

Done

sh ssl vserver vserver1

            Advanced SSL configuration for VServer vserver1:
            DH: DISABLED
            DH Private-Key Exponent Size Limit: DISABLED    Ephemeral RSA: ENABLED                                                                             Refresh Count: 0
            Session Reuse: ENABLED          Timeout: 120 seconds
            Cipher Redirect: DISABLED
            SSLv2 Redirect: DISABLED
            ClearText Port: 0
            Client Auth: DISABLED
            SSL Redirect: DISABLED
            Non FIPS Ciphers: DISABLED
            SNI: DISABLED
            OCSP Stapling: DISABLED
            HSTS: DISABLED
            HSTS IncludeSubDomains: NO
            HSTS Max-Age: 0
            SSLv2: DISABLED  SSLv3: ENABLED  TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
            Push Encryption Trigger: Always
            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
            ECC Curve: P_256, P_384, P_224, P_521

    1)      Cipher Name: DEFAULT
            Description: Default cipher list with encryption strength >= 128bit
Done

GUI を使用して PUSH フラグベースの暗号化を構成する

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、SSL 仮想サーバーを開きます。
  2. [SSL パラメータ] セクションで、[PUSH 暗号化トリガー] リストから値を選択します。

TLS1.2 署名ハッシュアルゴリズムのサポート

Citrix ADCアプライアンスは、TLS1.2署名ハッシュ拡張に完全に準拠しています。

SSL ハンドシェイクでは、クライアントは、サポートされているシグニチャハッシュアルゴリズムのリストを送信します。クライアントは、「signature_algorithms」拡張を使用して、SSL ハンドシェイクメッセージ(SKE および CCV)でどのシグニチャハッシュアルゴリズムのペアが使用されるかをサーバに示します。この拡張モジュールの「拡張データ」フィールドには、クライアントの Hello メッセージに「サポートされたシグナチャのアルゴリズム」値が含まれています。サーバがこれらのシグニチャハッシュアルゴリズムのいずれかをサポートしている場合、SSL ハンドシェイクは続行されます。サーバーがこれらのアルゴリズムをサポートしていない場合、接続は切断されます。

同様に、サーバーがクライアント認証のためにクライアント証明書を要求する場合、証明書要求メッセージには「supported_signature_algorithm」値が含まれます。クライアント証明書は、このシグニチャハッシュアルゴリズムに基づいて選択されます。

注:

Citrix ADCアプライアンスは、クライアントに対するサーバーとして、またバックエンドサーバーに対するクライアントとして機能します。

以前は、アプライアンスはフロントエンドで RSA-SHA1 と RSA-SHA256、バックエンドで RSA-MD5、RSA-SHA1、RSA-SHA256 のみをサポートしていました。また、VPXアプライアンスは、フロントエンドとバックエンドでDSA-SHA1をサポートしました。

MPX/SDX/VPX アプライアンスは、次のシグニチャハッシュの組み合わせをサポートします。SDXアプライアンスでは、SSLチップがVPXインスタンスに割り当てられている場合、MPXアプライアンスの暗号サポートが適用されます。それ以外の場合は、VPXインスタンスの通常の暗号サポートが適用されます。

  • VPXインスタンスの場合:
    • RSA-MD5
    • RSA-SHA1
    • RSA-SHA224
    • RSA-SHA256
    • RSA-SHA384
    • RSA-SHA512
    • DSA-SHA1
    • DSA-SHA224
    • DSA-SHA256
    • DSA-SHA384
    • DSA-SHA512
  • N3 チップを搭載した MPX/SDX アプライアンスの場合:
    • RSA-MD5
    • RSA-SHA1
    • RSA-SHA224
    • RSA-SHA256
    • RSA-SHA384
    • RSA-SHA512
    • ECDSA-SHA1
    • ECDSA-SHA224
    • ECDSA-SHA256
    • ECDSA-SHA384
    • ECDSA-SHA512
  • N3 チップを使用しない MPX/SDX アプライアンスの場合:
    • RSA-MD5
    • RSA-SHA1
    • RSA-SHA224
    • RSA-SHA256
    • RSA-SHA384
    • RSA-SHA512

デフォルトでは、すべてのシグニチャハッシュアルゴリズムが有効になっています。ただし、次のコマンドを使用すると、少数のシグニチャハッシュアルゴリズムしか有効にできません。

set ssl parameter -sigDigestType <sigDigestType>

Parameters

sigDigestType

Signature digest algorithms supported by the appliance. The platform determines the list of algorithms supported by default.

              On VPX: RSA-MD5 RSA-SHA1 RSA-SHA224 RSA-SHA256 RSA-SHA384 RSA-

              SHA512 DSA-SHA1 DSA-SHA224 DSA-SHA256 DSA-SHA384 DSA-SHA512

              On MPX with N3 cards: RSA-MD5 RSA-SHA1 RSA-SHA224 RSA-

              SHA256 RSA-SHA384 RSA-SHA512 ECDSA-SHA1 ECDSA-SHA224 ECDSA-

              SHA256 ECDSA-SHA384 ECDSA-SHA512

              Other MPX Platforms: RSA-MD5 RSA-SHA1 RSA-SHA224 RSA-SHA256 RSA-SHA384 RSA-

              SHA512.

    set ssl parameter -sigDigestType RSA-SHA224 RSA-SHA256 RSA-SHA384 RSA-SHA512

ピア証明書の検証

RFC 5246 によれば、ピア証明書は Client Hello 拡張に含まれているシグニチャハッシュアルゴリズムのいずれかを使用して署名する必要があります。strictSigDigestCheckパラメータを使用できます。クライアントから送信されたシグニチャハッシュリストに応じて、strictSigDigestCheckを有効にすると、アプライアンスは Client Hello エクステンションに記載されたシグニチャハッシュアルゴリズムのいずれかによって署名された証明書を返します。ピアに適切な証明書がない場合、接続は切断されます。このパラメータが無効の場合、ピア証明書でシグニチャハッシュはチェックされません。

SSL 仮想サーバおよびサービスで厳密なシグニチャダイジェストチェックを設定できます。SSL 仮想サーバでこのパラメータを有効にする場合、サーバから送信されるサーバ証明書は、Client Hello エクステンションにリストされているシグニチャハッシュアルゴリズムのいずれかによって署名されている必要があります。クライアント認証が有効になっている場合、サーバによって受信されたクライアント証明書には、サーバから送信された証明書要求にリストされている署名ハッシュアルゴリズムのいずれかを使用して署名する必要があります。

SSL サービスでこのパラメーターを有効にする場合、クライアントによって受信されるサーバー証明書は、Client Hello エクステンションにリストされている署名ハッシュアルゴリズムのいずれかによって署名されている必要があります。クライアント証明書は、証明書要求メッセージに記載されている署名ハッシュアルゴリズムのいずれかを使用して署名する必要があります。

デフォルトプロファイルが有効になっている場合、このプロファイルを使用して、SSL 仮想サーバ、SSL サービス、および SSL プロファイルで厳密なシグニチャダイジェストチェックを設定できます。

CLI を使用して SSL 仮想サーバー、サービス、またはプロファイルで厳密なシグニチャダイジェストチェックを構成する

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

set ssl vserver <vServerName> -strictSigDigestCheck ( ENABLED | DISABLED )

set ssl service <serviceName> -strictSigDigestCheck ( ENABLED | DISABLED )

set ssl profile <name>-strictSigDigestCheck ( ENABLED | DISABLED )

Parameters

strictSigDigestCheck

              Check whether peer entity certificate is signed using one of the signature-hash algorithms supported by the Citrix ADC appliance.

              Possible values: ENABLED, DISABLED

              Default: DISABLED

例:

set ssl vserver v1 –strictSigDigestCheck Enabled
set ssl service s1 –strictSigDigestCheck Enabled
set ssl profile p1 –strictSigDigestCheck Enabled

重要:

アプライアンスで DH、ECDHE、または ECDSA 暗号が設定されている場合、SKE メッセージには、クライアントリストおよびアプライアンスで設定されたリストに共通するシグニチャハッシュの 1 つを使用して、署名する必要があります。共通のシグニチャハッシュがない場合、接続は切断されます。