Citrix ADC

SSL オフロード設定

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

リリース 13.1 ビルド 17.x から、TLSv1.2 より前のプロトコルは SSL 内部サービスでは無効になっています。

  • デフォルトプロファイルが有効な場合、 ns_default_ssl_profile_internal_frontend_service は SSL 内部サービスにバインドされ、このプロファイルでは SSLv3、TLSv1.0、および TLSv1.1 プロトコルは無効になります。
  • デフォルトプロファイルが有効になっていない場合、SSLv3、TLSv1.0、および TLSv1.1 プロトコルは SSL 内部サービスパラメータで無効になります。

SSL を有効にする

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

CLI を使用して SSL 処理を有効にする

コマンドプロンプトで入力します。

enable ns feature ssl

show ns feature
<!--NeedCopy-->

例:

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
<!--NeedCopy-->

GUI を使用して SSL 処理を有効にする

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

サービスの構成

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

CLI を使用してサービスを追加する

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

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

例:

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
<!--NeedCopy-->

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

サービスを変更するには、set service コマンドを使用します。これは add service コマンドと同様ですが、既存のサービスの名前を入力する点が異なります。

サービスを削除するには、rm service コマンドを使用します。このコマンドは\ <name\ > 引数のみを受け付けます。

rm service <servicename>
<!--NeedCopy-->

例:

rm service sslsvc
<!--NeedCopy-->

サービスを変更するには、set service コマンドを使用し、任意のパラメータを選択してその設定を変更します。

set service <name> (<IP> | <serverName>) <serviceType> <port>
<!--NeedCopy-->

例:

set service sslsvc 198.51.100.225 SSL 443
<!--NeedCopy-->

GUI を使用してサービスを構成する

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

SSL 仮想サーバ構成

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

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

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

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

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

例:

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
<!--NeedCopy-->

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

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

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

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

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

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

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

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

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

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

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

bind lb vserver <name> <serviceName>
show lb vserver <name>
<!--NeedCopy-->

例:

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
<!--NeedCopy-->

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

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

unbind lb vserver <name> <serviceName>
<!--NeedCopy-->

例:

unbind lb vserver sslvs sslsvc
     Done
<!--NeedCopy-->

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

  1. [Traffic Management]>[Load Balancing]>[Virtual Servers] の順に移動します。
  2. 仮想サーバーを開き、[ サービスとサービスグループ] セクションの [ **負荷分散仮想サーバーサービスバインディング** ] タイルをクリックします。
  3. [ 負荷分散仮想サーバーサービスバインド] ページで、[バインドの追加 ] タブをクリックし、[ **サービスの選択] の [クリックして選択**] をクリックし、バインドするサービスの横にあるチェックボックスをオンにします。

  4. [ 選択] をクリックして [ バインド] をクリックします

複数のサイトを安全にホストするためのサーバー名表示 (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 オプションを使用すると、複数のサーバー証明書を 1 つの SSL 仮想サーバーまたはトランスペアレントサービスにバインドできます。仮想サーバーまたはサービスで SNI が有効になっている場合、仮想サーバーまたはサービスはこれらの証明書を発行します。SNI はいつでも有効にできます。

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

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

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

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

show ssl vserver <vServerName>
<!--NeedCopy-->

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

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

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

  1. [Traffic Management]>[Load Balancing]>[Virtual Servers] の順に移動します。
  2. SSL 仮想サーバーを開き、[ 証明書] で [ サーバー証明書] を選択します。
  3. 証明書を追加するか、一覧から証明書を選択して、[ SNI のサーバー証明書] をクリックします。
  4. [詳細設定]で [ SSL パラメータ] を選択します。
  5. [ SNI 有効化] をクリックします。

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

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

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

連邦システムインテグレーターのお客様のセキュリティ要件には、2012R2 および 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 を学習し、サーバー側接続で SNI を使用します。SSL サービス、サービスグループ、またはプロファイルに共通名を指定する必要がなくなりました。Client 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
<!--NeedCopy-->

例:

    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
<!--NeedCopy-->

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

  1. [Traffic Management]>[Load Balancing]>[Services] の順に移動します。
  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 を有効にし、プロファイルをモニタにバインドします。モニタのカスタムヘッダーを、モニタプローブの client 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>
<!--NeedCopy-->

例:

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
<!--NeedCopy-->

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. [Create] をクリックします。

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

  13. [Traffic Management]>[Load Balancing]>[Services] の順に移動します。
  14. SSL サービスを選択し、[ 編集] をクリックします。
  15. [ モニター] で、[ バインドの追加] をクリックし、前の手順で作成したモニターを選択して [ バインド] をクリックします。

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

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

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

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

メモ:

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

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

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

リリース 13.0 ビルド 79.x からは、パスワードで保護された証明書とキーのペアが常に正常に追加されます。以前は、Citrix ADCアプライアンスで強力なパスワードオプションを有効にすると、パスワードで保護された証明書とキーのペアが追加されないことがありました。ただし、以前のビルドにダウングレードすると、証明書キーの設定は失われます。また、証明書とキーのペアの NITRO API レスポンスでは、 passplain変数ではなくpasscrypt変数が送信されます。

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アプライアンスではRSAキーのみがサポートされています。

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

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 ビット証明書
  • 4096 ビットのクライアント証明書 (仮想サーバーでクライアント認証が有効になっている場合)

リリース13.1ビルド17.x以降、すべてのCitrix ADCプラットフォームは、RSASSA-PSSアルゴリズムを使用して署名された証明書をサポートします。 これらのアルゴリズムは X.509 証明書パスの検証でサポートされています。 次の表は、Citrix ADCアプライアンスでサポートされるRSASSA-PSSパラメーターセットを示しています。

パブリックキー OID マスク生成関数 (MGF) MGFダイジェスト機能 シグネチャダイジェスト関数 塩の長さ
RSAEncryption MGF1 SHA-256 SHA-256 32 バイト
RSAEncryption MGF1 SHA-384 SHA-384 48 バイト
RSAEncryption MGF1 SHA-512 SHA-512 64 バイト

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>]
<!--NeedCopy-->

例:

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
<!--NeedCopy-->

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]
<!--NeedCopy-->

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>
<!--NeedCopy-->

例:

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
<!--NeedCopy-->

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

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

unbind ssl vserver <vServerName> -certkeyName <string>
<!--NeedCopy-->

例:

unbind ssl vserver vssl -certkeyName sslckey
<!--NeedCopy-->

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 )]
<!--NeedCopy-->

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>`
<!--NeedCopy-->

例:

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
<!--NeedCopy-->

GUI を使用して DH パラメータを設定する

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

エフェメラル RSA

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

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

注:

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

CLI を使用してエフェメラル RSA を構成する

コマンドプロンプトで次のコマンドを入力して、エフェメラル RSA を構成し、構成を確認します。

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

例:

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
<!--NeedCopy-->

GUI を使用してエフェメラル RSA を構成する

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

セッション再利用

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

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

CLI を使用してセッションの再利用を設定する

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

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

例:

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
<!--NeedCopy-->

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 プロトコルを使用して再試行します。「Man in the Middle」(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>
<!--NeedCopy-->

例:

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
<!--NeedCopy-->

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>
<!--NeedCopy-->
  1. をサービスレベルで設定するには、次のように入力します。
set ssl service <serviceName> -sendCloseNotify ( YES | NO )
show ssl service <serviceName>
<!--NeedCopy-->
  1. サービスグループレベルで設定するには、次のように入力します。
set ssl serviceGroup <serviceGroupName> -sendCloseNotify ( YES | NO )
show ssl serviceGroup <serviceGroupName>
<!--NeedCopy-->

例:

set ssl vserver sslvsvr -sendCloseNotify YES

Done
<!--NeedCopy-->

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 ビルド 47.x でサポートが追加されました)。
  • バックエンドで安全な再ネゴシエーションを有効にします(リリース1.0ビルド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
<!--NeedCopy-->

例:

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
<!--NeedCopy-->

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
<!--NeedCopy-->

GUI を使用してセキュアな再ネゴシエーションを有効にする

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

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

アダプティブ SSL トラフィック制御

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

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

リリース 13.0 ビルド 58.x から、ユーザーは実際のキャパシティに対するパーセンテージの値を設定できます。この機能強化により、キュー内の要素の数が、適応的かつ動的に計算された制限を超えると、アプライアンスは新しい接続をドロップします。このアプローチは、着信 SSL 接続を制御し、アプライアンスでの過剰なリソース消費やその他の障害(負荷分散モニタリングの障害やセキュアなアプリケーションへの応答の遅延など)を防止します。

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

制限は次に基づいて計算されます。

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

たとえば、アプライアンスの実際のキャパシティが 1 秒あたり 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ビルド47.xから、SSLパラメータ「異機種間SSL HW」を「ENABLED」に設定することで、異なる数のパケットエンジンでCitrix ADC MPXアプライアンスの異機種混在クラスタ展開を形成できます。たとえば、Caviumチップベースのアプライアンス(MPX 14000または同様のもの)とIntel Coletoチップベースのアプライアンス(MPX 15000または同様のもの)のクラスタを形成するには、SSLパラメータ「異種SSL HW」を有効にします。同じチップを使用してプラットフォームのクラスタを形成するには、このパラメータのデフォルト値(DISABLED)を維持します。

メモ:

異機種混在クラスタでは、次の機能はサポートされていません。

  • Citrix ADC SDXアプライアンスでホストされているVPXインスタンス。
  • 仮想サーバー、サービス、サービスグループ、内部サービスなどの SSL エンティティに対する SSLv3 プロトコル。
  • ソフトウェア暗号加速CPUしきい値(ハードウェアとソフトウェアを使用してECDSAおよびECDHE暗号のパフォーマンスを向上させます)。

異機種混在クラスタでサポートされるプラットフォームの詳細については、「https://docs.citrix.com/en-us/citrix-adc/current-release/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
<!--NeedCopy-->

例:

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
<!--NeedCopy-->

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

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

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

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

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

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

注:

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

このアプライアンスは、フロントエンドではRSA-SHA1とRSA-SHA256のみをサポートし、バックエンドではRSA-MD5、RSA-SHA1、RSA-SHA256のみをサポートします。

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

  • VPXインスタンスおよびN3チップのないMPX/SDXアプライアンスでは、次のようになります。
    • RSA-MD5
    • RSA-SHA1
    • RSA-SHA224
    • RSA-SHA256
    • RSA-SHA384
    • RSA-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

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

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

              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
<!--NeedCopy-->

ピア証明書を検証する

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
<!--NeedCopy-->

例:

set ssl vserver v1 –strictSigDigestCheck Enabled
set ssl service s1 –strictSigDigestCheck Enabled
set ssl profile p1 –strictSigDigestCheck Enabled
<!--NeedCopy-->

重要:

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

ADC 管理者 UI アクセス用に SSL を構成する

構成ユーティリティへのHTTPSアクセスおよびセキュアなリモートプロシージャコールには、証明書とキーのペアが必要です。Citrix ADC MPXアプライアンスまたはVPX仮想アプライアンスでは、証明書とキーのペアが自動的に内部サービスにバインドされます。ただし、この証明書はブラウザによって信頼されていない可能性があります。エラーなしで認証を完了するには、ブラウザに有効な CA 証明書をアップロードする必要があります。

CLIを使用してセキュアなHTTPSの構成

CLI を使用してセキュア HTTPS を設定するには、次の手順に従います。

  1. 証明書とキーのペアを追加します。

    add certkey server -cert servercert -key serverkey
    <!--NeedCopy-->
    
  2. この証明書とキーのペアを次の内部サービスにバインドします。

    bind ssl service nshttps-127.0.0.1-443 -certkeyname server
    
    bind ssl service nshttps-::11-443 -certkeyname server
    <!--NeedCopy-->
    

GUIを使用して安全なHTTPSを構成する

GUIを使用して安全なHTTPSを構成するには、次の手順に従います。

  1. [Traffic Management ]> [SSL] > [Certificates] に移動します。
  2. 詳細ウィンドウで、[ インストール] をクリックします。
  3. [ 証明書のインストール ] ダイアログボックスで、証明書の詳細を入力します。
  4. [ インストール] をクリックし、[ 閉じる] をクリックします。
  5. [Traffic Management]>[Load Balancing]>[Services] の順に移動します。
  6. 詳細ウィンドウの [ 操作 ] タブで、[ 内部サービス] をクリックします。
  7. リストからnshttps-127.0.0.1-443を選択し、[ 開く] をクリックします。
  8. SSL 設定 ]タブの[ 使用可能 ]ペインで、手順 4 で作成した証明書を選択し、[ バインド]をクリックして、[ OK]をクリックします。
  9. リストからnshttps-::11-443を選択し、[ 開く] をクリックします。
  10. SSL 設定 ]タブの[ 使用可能 ]ペインで、手順 4 で作成した証明書を選択し、[ バインド]をクリックして、[ OK]をクリックします。
  11. [OK] をクリックします。