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
<!--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つのサービスがバインドされるまで、SSL 仮想サーバーはCitrix ADCアプライアンス上でダウンとしてマークされます。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 仮想サーバを削除するには、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>
<!--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 オプションを使用すると、複数のサーバ証明書を単一の SSL 仮想サーバまたは透過サービスにバインドできます。仮想サーバーまたはサービスで SNI が有効になっている場合、仮想サーバーまたはサービスは、これらの証明書を発行します。SNI はいつでも有効にできます。

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

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

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

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

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

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

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

GUI を使用して複数のサーバー証明書を単一の 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 つのポートだけを使用するという利点があります。

連邦システムインテグレーターの顧客のセキュリティ要件には、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をバックエンドサービスに送信できませんでした。代わりに、設定された静的な共通名を送信しました。これで、バックエンドサーバーが複数のドメイン用に構成されている場合、サーバーは、アプライアンスからのClientHelloメッセージで受信したSNIに基づいて正しい証明書で応答できます。

注意点:

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

  • サーバー認証が有効になっている場合、サーバー証明書はCA証明書と共通によって検証されます name/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 を有効にし、プロファイルをモニタにバインドします。モニタのカスタムヘッダーを、モニタプローブのクライアント 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. [作成] をクリックします。

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

  13. Traffic Management > Load Balancing > Servicesに移動します。
  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 文字までの証明書名がサポートされます。

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

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. Traffic Management > Load Balancing > Virtual Serversに移動して仮想サーバーを開きます。
  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>
<!--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. Traffic Management > Load Balancing > Virtual Serversに移動して仮想サーバーを開きます。
  2. [SSL パラメータ] セクションで、[Ephemereal 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>
<!--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. Traffic Management > Load Balancing > Virtual Serversに移動して仮想サーバーを開きます。
  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. Traffic Management > Load Balancing > Virtual Serversに移動して仮想サーバーを開きます。
  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. Traffic Management > Load Balancing > Virtual Serversに移動して仮想サーバーを開きます。
  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アプライアンスのバックエンドでの安全な再ネゴシエーションのサポート

注: この機能は、リリース 11.0 ビルド 64.x 以降でサポートされています。以前のリリースとビルドでは、非セキュアな再ネゴシエーションのみがバックエンドでサポートされていました。

これらのプラットフォームでは、次の 3 つの LOM 機能がサポートされています。 • 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. Traffic Management > SSL > Change advanced SSL settingsに移動します。
  2. [ SSL再ネゴシエーションの拒否]を ALL以外の任意の値に設定します。

    バックエンドの安全な再ネゴシエーションのグローバルパラメータ

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

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

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

リリース13.0ビルド58.x以降、ユーザーは実際の容量のパーセンテージである値を構成できます。この機能拡張により、キュー内の要素の数が適応的かつ動的に計算される制限を超えると、アプライアンスは新しい接続をドロップします。このアプローチは、着信SSL接続を制御し、アプライアンスでの過度のリソース消費や、負荷分散の監視の失敗や安全なアプリケーションへの応答の遅延などの他の障害を防ぎます。

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

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

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

たとえば、アプライアンスの実際の容量が1000の場合 operations/second 特定の時間にデフォルトのパーセンテージが設定されている場合、アプライアンスが接続を切断するまでの制限は1500(1000の150%)です。

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

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

set ssl parameter -operationQueueLimit <positive_integer>

操作キューの制限 -キューが削減されるまで新しいSSL接続が受け入れられない暗号化操作キューの容量のパーセンテージの制限。デフォルト値:150。最小値:0。最大値:10000。

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

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

    操作キューの制限

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

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

メモ:

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

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

異機種混在クラスタでサポートされるプラットフォームの詳細については、「https://docs.citrix.com/ja-jp/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_algoriths」拡張機能を使用して、SSL ハンドシェイクメッセージ(SKE および CCV)で使用される可能性のあるシグニチャハッシュアルゴリズムのペアをサーバーに示します。この拡張モジュールの「拡張データ」フィールドには、クライアントの Hello メッセージに「サポートされた署名のアルゴリズム」値が含まれています。サーバがこれらの署名ハッシュアルゴリズムのいずれかをサポートしている場合、SSL ハンドシェイクは続行されます。サーバーがこれらのアルゴリズムをサポートしていない場合、接続は切断されます。

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

注:

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

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

MPX/SDX/VPX アプライアンスは、次の署名ハッシュの組み合わせをサポートします。SDXアプライアンスでは、SSLチップがVPXインスタンスに割り当てられている場合、MPXアプライアンスの暗号サポートが適用されます。それ以外の場合は、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つを使用して署名する必要があります。共通の署名ハッシュがない場合、接続は切断されます。