ADC
ご意見をお寄せいただきありがとうございました

この記事は機械翻訳されています.免責事項

SSL 組み込みアクションとユーザー定義アクション

ポリシーに組み込みアクションのみが必要な場合を除き、ポリシーを作成する前にアクションを作成する必要があります。その後、ポリシーを作成するときにアクションを指定できます。組み込みアクションには、制御アクションとデータアクションの 2 種類があります。コントロールポリシーではコントロールアクションを使用し、データポリシーではデータアクションを使用します。

組み込みの制御アクションは次のとおりです。

  • DOCLIENTAUTH-クライアント証明書認証を実行します。(TLS1.3ではサポートされていません)
  • NOCLIENTAUTHH:クライアント証明書認証を実行しません。(TLS1.3ではサポートされていません)

組み込みのデータアクションは次のとおりです。

  • RESET:クライアントに RST パケットを送信して接続を閉じます。
  • DROP:クライアントからのすべてのパケットをドロップします。接続は、クライアントが閉じるまで開いたままです。
  • NOOP:処理を実行せずにパケットを転送します。

注: clientCertVerificationやssllogProfileなど、クライアント認証に依存するアクションは、TLS1.3プロトコルではサポートされていません。

ユーザー定義のデータアクションを作成できます。クライアント認証を有効にすると、要求を Web サーバに転送する前に、要求ヘッダーにクライアント証明書データを挿入する SSL アクションを作成できます。

ポリシー評価の結果が未定義の状態になった場合は、UNDEF アクションが実行されます。データポリシーまたは制御ポリシーのいずれの場合も、UNDEF アクションとして RESET、DROP、または NOOP を指定できます。制御ポリシーの場合は、DOCLIENTAUTH または NOCLIENTAUTH を指定することもできます。

ポリシー内の組み込みアクションの例

次の例では、クライアントがEXPORTカテゴリ以外の暗号を送信した場合、Citrix ADCアプライアンスはクライアント認証を要求します。クライアントは、トランザクションを成功させるには、有効な証明書を提供する必要があります。

add ssl policy pol1 -rule CLIENT.SSL.CIPHER_EXPORTABLE.NOT -reqAction DOCLIENTAUTH

次の例では、クライアント認証が有効であることを前提としています。

ユーザによって提供された証明書のバージョンが、ポリシーのバージョンと一致する場合、アクションは実行されず、パケットが転送されます。

add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction NOOP

ユーザーによって提供された証明書のバージョンが、ポリシーのバージョンと一致する場合、接続は切断されます。

add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction DROP

ユーザーによって提供された証明書のバージョンが、ポリシーのバージョンと一致する場合、接続はリセットされます。

add ssl policy pol1 -rule CLIENT.SSL.CLIENT_CERT.VERSION.EQ(2) -reqAction RESET

ポリシーベースのクライアント認証によるクライアント証明書の検証

ポリシーベースのクライアント認証を設定している場合は、クライアント証明書の検証を「必須」または「オプション」に設定できます。デフォルトは必須です。

CLI を使用してクライアント証明書の検証をオプションに設定する

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

add ssl action <name> ((-clientAuth ( DOCLIENTAUTH | NOCLIENTAUTH ) [-clientCertVerification ( Mandatory | Optional )]

例:

add ssl action sslact -clientauth DOCLIENTAUTH -clientcertverification OPTIONAL

GUI を使用してクライアント証明書の検証をオプションに設定する

  1. [Traffic Management]>[SSL]>[Policies] に移動します。

  2. [SSL アクション] タブで、[追加] をクリックします。

  3. 名前を指定し、[クライアント証明書の検証] リストで [オプション] を選択します。

ユーザ定義の SSL アクション

組み込みアクションに加えて、展開に応じて他の SSL アクションを構成することもできます。これらのアクションをユーザー定義アクションと呼びます。

CLI を使用したユーザ定義の SSL アクションの設定

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

add SSL action <name> -clientAuth(DOCLIENTAUTH | NOCLIENTAUTH) -clientCert (ENABLED | DISABLED) certHeader <string> -clientHeader <string> -clientCertSerialNumber (ENABLED | DISABLED) -certSerialHeader <string> -clientCertSubject (ENABLED | DISABLED) -certSubjectHeader <string> -clientCertHash (ENABLED | DISABLED) -certHashHeader <string> -clientCertIssuer (ENABLED | DISABLED) -certIssuerHeader <string> -sessionID (ENABLED | DISABLED) -sessionIDheader <string> -cipher (ENABLED | DISABLED) -cipherHeader <string> -clientCertNotBefore (ENABLED | DISABLED) -certNotBeforeHeader <string> -clientCertNotAfter (ENABLED | DISABLED) -certNotAfterHeader <string> -OWASupport (ENABLED | DISABLED)
show ssl action [<name>]

例:

add ssl action Action-SSL-ClientCert -clientCert ENABLED -certHeader "X-Client-Cert"
show ssl action Action-SSL-ClientCert 1) Name: Action-SSL-ClientCert Data Insertion Action: Cert Header: ENABLED Cert Tag: X-Client-Cert Done

GUI を使用したユーザ定義の SSL アクションの設定

[ トラフィック管理] > [SSL] > [ポリシー ] に移動し、[ アクション ] タブで [ 追加] をクリックします。

クライアントトラフィックを別の仮想サーバーに転送するための SSL アクションの設定

管理者は、SSL のオフロードを回避するために、SSL 仮想サーバーで受信したクライアントトラフィックを別の仮想サーバーに転送するように SSL アクションを設定できます。または、ADCアプライアンスの接続を終了させる場合に使用します。この仮想サーバーの種類は、SSL、TCP、または SSL_BRIDGE です。たとえば、管理者は、次のいずれかの場合に接続を終了する代わりに、別の仮想サーバーに要求を転送してさらにアクションを実行できます。

  • アプライアンスには証明書がありません。
  • アプライアンスは特定の暗号をサポートしていません。

上記を実現するために、新しいバインドポイント「CLIENTHELLO_REQ」を追加して、クライアントハローを受信したときにクライアントトラフィックを評価します。86379 クライアントトラフィックを受信する仮想サーバにバインドされたポリシーが、クライアント hello の解析後に true と評価された場合、トラフィックは別の仮想サーバに転送されます。この仮想サーバーのタイプが SSL の場合は、ハンドシェイクを実行します。この仮想サーバーのタイプが TCP または SSL_BRIDGE の場合、バックエンドサーバーはハンドシェイクを実行します。

リリース 12.1-49.x では、CLIENTHELLO_REQ バインドポイントではフォワードアクションとリセットアクションだけがサポートされています。次の式接頭辞を使用できます。

  • CLIENT.SSL.CLIENT_HELLO.CIPHERS.HAS_HEXCODE
  • CLIENT.SSL.CLIENT_HELLO.CLIENT_VERSION
  • CLIENT.SSL.CLIENT_HELLO.IS_RENEGOTIATE
  • CLIENT.SSL.CLIENT_HELLO.IS_REUSE
  • CLIENT.SSL.CLIENT_HELLO.IS_SCSV
  • CLIENT.SSL.CLIENT_HELLO.IS_SESSION_TICKET
  • CLIENT.SSL.CLIENT_HELLO.LENGTH
  • CLIENT.SSL.CLIENT_HELLO.SNI
  • CLIENT.SSL.CLIENT_HELLO.ALPN.HAS_NEXTPROTOCOL (13.0ビルド61.xから)

これらのプレフィクスの説明については、「 高度なポリシー式:SSL の解析」を参照してください。

add SSL actionコマンドにパラメータforwardが追加され、新しいバインドポイントCLIENTHELLO_REQbind ssl vserverコマンドに追加されます。

CLI を使用した設定

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

add ssl action <name> -forward <virtual server name> add ssl policy <name> -rule <expression> -action <string> bind ssl vserver <vServerName> -policyName <string> -priority <positive_integer> -type <type>

:

add ssl action act1 -forward v2 add ssl policy pol1 -rule client.ssl.client_hello.ciphers.has_hexcode(0x002f) -action act1 bind ssl vserver v1 -policyName pol1 -priority 1 -type CLIENTHELLO_REQ

GUI を使用した設定

[Traffic Management]>[SSL]>[Policies] に移動します。

SSL アクションの作成:

  1. [SSL アクション] で、[追加] をクリックします。
  2. SSLアクションの作成」で、アクションの名前を指定します。
  3. 転送アクション仮想サーバー」で、既存の仮想サーバーを選択するか、トラフィックを転送する新しい仮想サーバーを追加します。
  4. 必要に応じて、他のパラメータを設定します。
  5. [作成] をクリックします。

SSL ポリシーを作成します

  1. [SSL ポリシー] で、[追加] をクリックします。
  2. SSLポリシーの作成」で、ポリシーの名前を指定します。
  3. アクション」で、以前に作成したアクションを選択します。
  4. 式エディタで、評価するルールを入力します。
  5. [作成] をクリックします。

仮想サーバーおよびバインドポリシーを作成または追加します

  1. [ トラフィック管理 ] > [ 負荷分散 ] > [ 仮想サーバー] に移動します。
  2. 仮想サーバーを追加または選択します。
  3. [詳細設定]で、[SSL ポリシー] をクリックします。
  4. [SSL ポリシー] セクションをクリックします。
  5. [ポリシーの選択] で、前に作成したポリシーを選択します。
  6. ポリシー・バインディング」で、ポリシーの優先度を指定します。
  7. タイプ」で「 CLIENTHELLO_REQ」を選択します。
  8. [バインド] をクリックします。
  9. [完了] をクリックします。

最も一般的なユースケースのエンドツーエンド構成については、次のトピックを参照してください。

クライアント認証用に SNI に基づいて CA を選択的に選択する SSL アクション

SSL 仮想サーバーにバインドされたすべての CA のリストではなく、クライアント証明書要求の SNI (ドメイン) に基づく CA のリストのみを送信できます。たとえば、クライアント hello を受信すると、SSL ポリシー表現に基づく CA 証明書(SNI など)だけが送信されます。特定の一連の証明書を送信するには、CA 証明書グループを作成する必要があります。次に、このグループを SSL アクションにバインドし、アクションを SSL ポリシーにバインドします。クライアントトラフィックを受信する仮想サーバにバインドされたポリシーが、クライアント hello の解析後に true と評価された場合、特定の CA 証明書グループだけがクライアント要求証明書で送信されます。

以前は、CA 証明書を SSL 仮想サーバーにバインドする必要がありました。この機能拡張により、CA 証明書グループを追加し、SSL アクションに関連付けることができます。

注: SSL仮想サーバーでクライアント認証とSNIを有効にします。正しい SNI 証明書を仮想サーバーにバインドします。

次の手順を実行します。

  1. CA 証明書グループを追加します。

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

  3. 証明書とキーのペアをこのグループにバインドします。

  4. SSL アクションを追加します。

  5. SSL ポリシーを追加します。ポリシーでアクションを指定します。

  6. ポリシーを SSL 仮想サーバーにバインドします。バインドポイントを「クライアントセル」(CLIENTHELLO_REQ) として指定します。

CLI を使用した設定

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

add ssl caCertGroup <caCertGroupName> add ssl certkey <certkey_name> -cert <cert> -key <key> bind ssl caCertGroup <caCertGroupName> <certkey_name> add ssl action <name> -caCertGrpName <string> add ssl policy <name> -rule <expression> -action <string> bind ssl vserver <vServerName> -policyName <string> -priority <positive_integer> -type CLIENTHELLO_REQ

例:

add ssl cacertGroup ca_cert_group add ssl certkey ca_certkey1 -cert cacert1 -key cakey1 add ssl certkey ca_certkey2 -cert cacert2 -key cakey2 add ssl certkey snicert -cert snicert -key snikey bind ssl cacertGroup ca_cert_group ca_certkey1 bind ssl caCertGroup ca_cert_group ca_certkey2
sh ssl caCertGroup ca_cert_group CA GROUP NAME: ca_cert_group ACTIONS REFERRING: 1 1) CertKey Name: ca_certkey1 CA Certificate CRLCheck: Optional CA_Name Sent 2) CertKey Name: ca_certkey2 CA Certificate CRLCheck: Optional CA_Name Sent
add ssl action pick_ca_group -cacertGrpName ca_cert_group
sh ssl action pick_ca_group 1) Name: pick_ca_group Type: Data Insertion PickCaCertGroup: ca_cert_group Hits: 0 Undef Hits: 0 Action Reference Count: 1
add ssl policy snipolicy -rule client.ssl.client_hello.sni.contains("abc") -action pick_ca_group bind ssl vserver v_SSL -policyName snipolicy -type CLIENTHELLO_REQ -priority 10
sh ssl policy snipolicy Name: snipolicy Rule: client.ssl.client_hello.sni.contains("abc") Action: pick_ca_group UndefAction: Use Global Hits: 0 Undef Hits: 0 Policy is bound to following entities 1) Bound to: CLIENTHELLO_REQ VSERVER v_SSL Priority: 10
set ssl vserver v_SSL -clientauth ENABLED -SNIEnable ENABLED bind ssl vserver v_SSL -certkeyName snicert -sniCert
sh ssl vserver v_SSL Advanced SSL configuration for VServer v_SSL: 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: ENABLED Client Cert Required: Mandatory SSL Redirect: DISABLED Non FIPS Ciphers: DISABLED SNI: ENABLED 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) CertKey Name: snicert Server Certificate for SNI Data policy 1) Policy Name: snipolicy Priority: 10 1) Cipher Name: DEFAULT Description: Default cipher list with encryption strength >= 128bit

GUI を使用した設定

CA 証明書グループを作成し、そのグループに証明書をバインドします

  1. [トラフィック管理] > [SSL] > [CA 証明書グループ] に移動します。
  2. [追加] をクリックし、グループの名前を指定します。
  3. [作成] をクリックします。
  4. CA 証明書グループ を選択し、[バインドの表示] をクリックします。
  5. [バインド] をクリックします。
  6. [CA 証明書のバインド] ページで、既存の証明書を選択するか、[追加] をクリックして新しい証明書を追加します。
  7. [選択] をクリックし、[バインド] をクリックします。
  8. 別の証明書をバインドするには、手順 5 ~ 7 を繰り返します。
  9. [閉じる] をクリックします。

[Traffic Management]>[SSL]>[Policies] に移動します。

SSL アクションの作成:

  1. [SSL アクション] で、[追加] をクリックします。
  2. SSLアクションの作成」で、アクションの名前を指定します。
  3. 転送アクション仮想サーバー」で、既存の仮想サーバーを選択するか、トラフィックを転送する仮想サーバーを追加します。
  4. 必要に応じて、他のパラメータを設定します。
  5. [作成] をクリックします。

SSL ポリシーを作成します

  1. [SSL ポリシー] で、[追加] をクリックします。
  2. SSLポリシーの作成」で、ポリシーの名前を指定します。
  3. アクション」で、前に作成したアクションを選択します。
  4. 式エディタで、評価するルールを入力します。
  5. [作成] をクリックします。

仮想サーバーおよびバインドポリシーを作成または追加します

  1. [ トラフィック管理 ] > [ 負荷分散 ] > [ 仮想サーバー] に移動します。
  2. 仮想サーバーを追加または選択します。
  3. [詳細設定]で、[SSL ポリシー] をクリックします。
  4. [SSL ポリシー] セクションをクリックします。
  5. [ポリシーの選択] で、前に作成したポリシーを選択します。
  6. ポリシー・バインディング」で、ポリシーの優先度を指定します。
  7. タイプ」で「 CLIENTHELLO_REQ」を選択します。
  8. [バインド] をクリックします。
  9. [完了] をクリックします。

GUI を使用して CA 証明書グループをバインド解除する

  1. [トラフィック管理] > [SSL] > [CA 証明書グループ] に移動します。
  2. 証明書グループを選択し、[バインドの表示] をクリックします。
  3. グループから削除する証明書を選択し、[バインド解除] をクリックします。
  4. 確認メッセージが表示されたら、[**はい] をクリックします。• • 。
  5. [閉じる] をクリックします。

GUI を使用して CA 証明書グループを削除する

  1. [トラフィック管理] > [SSL] > [CA 証明書グループ] に移動します。
  2. 証明書グループを選択し、[Delete] をクリックします。
  3. 確認メッセージが表示されたら、[はい] をクリックします。
このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。