Citrix ADC

SSL ベースのヘッダー挿入の設定

Citrix ADCアプライアンスはすべてのSSL関連処理をサーバーからオフロードするため、サーバーはHTTPトラフィックのみを受信します。状況によっては、サーバーが特定の SSL 情報を必要とします。たとえば、最近の SSL トランザクションのセキュリティ監査では、クライアントサブジェクト名 (X509 証明書に含まれる) をサーバーにログオンする必要があります。

このようなデータは、HTTP ヘッダーに名前と値のペアとして挿入することで、サーバーに送信できます。次のいずれかの操作を実行できます。

  • 必要に応じて、クライアント証明書全体のハッシュ (フィンガープリントまたはサムプリントとも呼ばれます) を挿入します。
  • 証明書の特定のフィールド(サブジェクト、シリアル番号、発行者、署名、SSL セッション ID、暗号スイートなど)のみを挿入します。
  • 証明書の有効性を判断するために使用される前日または後でない日付を挿入します。

SSL ベースの挿入は、HTTP ベースの SSL 仮想サーバおよびサービスに対してのみ有効にできます。TCP ベースの SSL 仮想サーバおよびサービスには適用できません。また、SSL 仮想サーバーでクライアント認証を有効にする必要があります。これは、挿入された値は、認証のために仮想サーバーに提示されるクライアント証明書から取得されるためです。

SSL ベースのヘッダー挿入を設定するには、まず、挿入する特定の情報セットごとに SSL アクションを作成してから、情報を挿入する接続を識別するポリシーを作成します。各ポリシーを作成するときに、ポリシーに関連付けるアクションを指定します。次に、SSL トラフィックを受信する SSL 仮想サーバにポリシーをバインドします。

次の例では、高度なポリシーポリシーを使用します。次の例では、URL /testsite/file5.html に対する要求を受信した場合にクライアント認証を実行するための制御ポリシー (ctrlpol) が作成されます。クライアント認証が成功した場合にアクション(act1)を実行するためのデータポリシー(datapol)が作成されます。SSL アクション (act1) が追加され、リクエストを転送する前に証明書の詳細と発行者の名前がリクエストに挿入されます。その他の URL では、クライアント認証は無効になります。その後、ポリシーは SSL トラフィックを受信する SSL 仮想サーバー (ssl_vserver) にバインドされます。

SSL ベースのヘッダー挿入を設定するコマンドライン例

例:

add ssl action act1 -clientCert ENABLED -certHeader mycert -clientcertissuer ENABLED -certIssuerHeader myissuer

add ssl policy datapol -rule HTTP.REQ.URL.EQ("/testsite/file5.html") -action act1

add ssl policy ctrlpol -rule HTTP.REQ.URL.EQ("/testsite/file5.html") -action CLIENTAUTH

bind ssl vserver ssl_vserver -policyName ctrlpol -priority 1

bind ssl vserver ssl_vserver -policyName datapol -priority 1

Done
<!--NeedCopy-->

GUI を使用した SSL ベースのヘッダー挿入の設定

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

  2. 詳細ペインで、[Actions] タブ、[Add] をクリックします。

  3. [SSL アクションの作成] ダイアログボックスで、次のパラメータを設定します。

    • 名前*
    • クライアント証明書
    • 証明書タグ
    • クライアント証明書発行者
    • 発行者タグ

    * 必須パラメータ

  4. [Create] をクリックしてから、[Close] をクリックします。

  5. タブで、[ 追加 ] をクリックして制御ポリシーを作成します。

  6. [SSL ポリシーの作成(Create SSL Policy )] ダイアログボックスで、次のパラメータを設定します。

    • 名前*
    • アクションのリクエスト

    * 必須パラメータ

  7. [Create] をクリックしてから、[Close] をクリックします。

  8. ステップ 5 ~ 7 を繰り返して、データポリシーを作成します。

  9. ナビゲーションウィンドウで、[ SSL オフロード] を展開し、[ 仮想サーバー] をクリックします。

  10. 詳細ペインで、仮想サーバーの一覧から、SSL ポリシーをバインドする仮想サーバーを選択し、[ 開く] をクリックします。

  11. [ 仮想サーバーの構成 (SSL オフロード) ] ダイアログボックスで、[ SSL 設定]、[ SSL ポリシー] の順にクリックします。

  12. [SSL ポリシーのバインド/バインド解除] ダイアログボックスで、[ ポリシーの挿入] をクリックします。[ ポリシー名] で、手順 5 ~ 7 で作成したポリシーを選択します。

  13. [OK] をクリックし、[Close] をクリックします。ステータスバーに、ポリシーが正常にバインドされたことを示すメッセージが表示されます。

  14. ステップ 12 と 13 を繰り返し、ステップ 8 で作成したポリシーを選択します。

HTTP ヘッダーにクライアント証明書のサムプリントを挿入するための SSL ポリシーアクションを構成する

Citrix ADCアプライアンスは、バックエンドサーバーに送信される要求のヘッダーへの証明書のサムプリント(フィンガープリントとも呼ばれます)の挿入をサポートするようになりました。クライアント認証が有効になっている場合、アプライアンスは証明書のサムプリントを計算し、SSL ポリシーアクションを使用してサムプリントをリクエストに挿入します。サーバーはサムプリントを検索し、一致する場合は安全なアクセスを許可します。

クライアント証明書のフィンガープリントを有効にするように SSL アクションを設定し、クライアント証明書のフィンガープリントを挿入するヘッダー名と、フィンガープリント値を計算するダイジェスト(ハッシュ値)を指定します。Citrix ADCアプライアンスは、SHA1およびSHA2(SHA224、SHA256、SHA384、SHA512)ダイジェストをサポートしています。アプライアンスは、クライアント証明書の DER エンコーディングの指定されたダイジェストを計算することによって、フィンガープリント値を導出します。次に、このアクションを指定する SSL ポリシーを作成し、そのポリシーを SSL 仮想サーバーにバインドします。

CLI を使用してクライアント証明書のサムプリントを挿入するための SSL アクションを構成する

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

add ssl action <name> -clientCertFingerprint ( ENABLED | DISABLED ) -certFingerprintHeader <string> -certFingerprintDigest <certFingerprintDigest>
<!--NeedCopy-->

引数:

clientCertFingerprint:

Web サーバーに送信される要求の HTTP ヘッダーに証明書のフィンガープリントを挿入します。フィンガープリントは、クライアント証明書の DER エンコーディングの指定されたハッシュ値(SHA256 など)を計算することによって導出されます。

certFingerprintHeader:

クライアント証明書フィンガープリントを挿入するヘッダーの名前。

certFingerprintDigest:

クライアント証明書のフィンガープリントを計算するために使用されるダイジェストアルゴリズム。

可能な値:SHA1、SHA224、SHA256、SHA384、SHA512

例:

add ssl action act1 -clientcertfingerprint ENABLED -certfingerprintdigest SHA1 -certfingerprintheader example
Done
<!--NeedCopy-->
sh ssl action act1
    1)      Name: act1
            Type: Data Insertion
            Cert Fingerprint Header: ENABLED
            Cert-Fingerprint Tag: example
            Cert-Fingerprint Digest Algorithm: SHA1
            Hits: 0
            Undef Hits: 0
            Action Reference Count: 0
Done
<!--NeedCopy-->
add ssl policy pol1 -rule true -action act1
Done
<!--NeedCopy-->
bind ssl vserver v1 -policyName pol1 -priority 10
Done
<!--NeedCopy-->
sh ssl vserver v1

            Advanced SSL configuration for VServer v1:
            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: DISABLED
            OCSP Stapling: DISABLED
            SSLv2: DISABLED SSLv3: DISABLED TLSv1.0: DISABLED  TLSv1.1: ENABLED  TLSv1.2: DISABLED
            Push Encryption Trigger: Always
            Send Close-Notify: YES

            ECC Curve: P_256, P_384, P_224, P_521

    1)      CertKey Name: intca6    CA Certificate          CRLCheck: Mandatory             CA_Name Sent
    2)      CertKey Name: intca5    CA Certificate          CRLCheck: Mandatory             CA_Name Sent
    3)      CertKey Name: intca4    CA Certificate          CRLCheck: Mandatory             CA_Name Sent
    4)      CertKey Name: intca3    CA Certificate          CRLCheck: Mandatory             CA_Name Sent
    5)      CertKey Name: intca2    CA Certificate          CRLCheck: Mandatory             CA_Name Sent
    6)      CertKey Name: intca1    CA Certificate          CRLCheck: Mandatory             CA_Name Sent

            Data policy
    1)      Policy Name: pol1       Priority: 10

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

GUI を使用してクライアント証明書のサムプリントを挿入するための SSL アクションを構成する

  1. [ トラフィック管理] > [SSL] > [ポリシー] に移動します。
  2. 詳細ウィンドウで、[ SSL アクション ] タブを選択し、[ 追加] をクリックします。
  3. [ SSL アクションの作成 ] ダイアログボックスで、次のパラメータを設定します。
    • 名前*
    • クライアント証明書のフィンガープリント
    • 指紋タグ
    • 指紋ダイジェスト *必須パラメータ
  4. [作成] をクリックします。
  5. [ SSL ポリシー ] タブを選択し、[ 追加] をクリックします。
  6. [SSL ポリシーの作成(Create SSL Policy )] ダイアログボックスで、次のパラメータを設定します。
    • 名前*
    • 操作(アクション)
    • 式 *必須パラメータ
  7. [作成] をクリックします。
  8. [ トラフィック管理] > [負荷分散] > [仮想サーバー] に移動します。
  9. 詳細ウィンドウで、SSL 仮想サーバーの一覧から、SSL ポリシーをバインドする仮想サーバーを選択し、[ 編集] をクリックします。
  10. [ 詳細設定] で、[ SSL ポリシー] をクリックします。
  11. [SSL Policy] の下をクリックし、[ Policy Binding ] ダイアログボックスで、前に作成したポリシーを選択し、優先度を割り当てます。
  12. [バインド] をクリックします。