Citrix ADC

証明書失効リスト

CA によって発行された証明書は、通常、有効期限まで有効です。ただし、状況によっては、有効期限が切れる前に CA が発行した証明書を取り消すことがあります。たとえば、所有者の秘密キーが侵害された場合、会社または個人の名前が変更されたり、サブジェクトと CA との関連付けが変更されたりします。

証明書失効リスト (CRL) は、シリアル番号と発行者によって無効な証明書を識別します。

証明機関は CRL を定期的に発行します。CRLを使用して無効な証明書を示すクライアント要求をブロックするようにCitrix ADCアプライアンスを構成できます。

CA からの CRL ファイルがすでに存在する場合は、そのファイルを Citrix ADC アプライアンスに追加します。更新オプションを設定できます。また、Webの場所またはLDAPの場所から、指定した間隔でCRLファイルを自動的に同期するようにCitrix ADCを構成することもできます。アプライアンスは、PEM または DER ファイル形式の CRL をサポートします。Citrix ADCアプライアンスに追加されるCRLファイルのファイル形式を必ず指定してください。

SSL 展開で使用される証明書を作成するために、ADC を CA として使用した場合は、特定の証明書を取り消す CRL を作成することもできます。この機能を使用すると、たとえば、Citrix ADCで作成された自己署名証明書が、実稼働環境や特定の日付以降に使用されないようにできます。

注:

デフォルトでは、CRLはCitrix ADCアプライアンス上の/var/netscaler/sslディレクトリに保存されます。

ADCでCRLを作成する

アプライアンスを使用して認証局として機能し、自己署名証明書を作成できるため、作成した証明書と所有する CA 証明書を持つ証明書を取り消すこともできます。

アプライアンスは、これらの証明書の CRL を作成する前に、無効な証明書を取り消す必要があります。アプライアンスは、失効した証明書のシリアル番号をインデックス・ファイルに保存し、証明書が失効するたびにファイルを更新します。インデックスファイルは、証明書が最初に失効したときに自動的に作成されます。

CLI を使用して証明書を取り消すか、CRL を作成する

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

create ssl crl <CAcertFile> <CAkeyFile> <indexFile> (-revoke <input_filename> | -genCRL <output_filename>)

例:

create ssl crl Cert-CA-1 Key-CA-1 File-Index-1 -revoke Invalid-1

create ssl crl Cert-CA-1 Key-CA-1 File-Index-1 -genCRL CRL-1

GUI を使用して証明書を取り消すか、CRL を作成する

  1. [トラフィック管理] > [SSL] に移動し、[はじめに] グループで [CRL 管理] を選択します。
  2. 証明書の詳細を入力し、 [操作の選択] リストで [証明書の取り消 し] または [CRL の生成] を選択します。

既存のCRLをADCに追加する

Citrix ADCアプライアンスでCRLを構成する前に、CRLファイルがCitrix ADCアプライアンスにローカルに保存されていることを確認してください。HA セットアップの場合、CRL ファイルは両方の ADC アプライアンスに存在し、ファイルのディレクトリパスは両方のアプライアンスで同じである必要があります。

CLI を使用して、Citrix ADC で CRL を追加します

コマンドプロンプトで次のコマンドを入力して、Citrix ADCにCRLを追加し、構成を確認します。

add ssl crl <crlName> <crlPath> [-inform (DER | PEM)]

show ssl crl [<crlName>]

例:

> add ssl crl crl-one /var/netscaler/ssl/CRL-one -inform PEM

Done

> show ssl crl crl-one

            Name: crl-one   Status: Valid,  Days to expiration: 29
            CRL Path: /var/netscaler/ssl/CRL-one
            Format: PEM     CAcert: samplecertkey
            Refresh: DISABLED
            Version: 1
            Signature Algorithm: sha1WithRSAEncryption
            Issuer:  C=US,ST=California,L=Santa Clara,O=NetScaler Inc.,OU=SSL Acceleration,CN=www.ns.com/emailAddress=support@Citrix ADC appliance.com
            Last_update:Jun 15 10:53:53 2010 GMT
            Next_update:Jul 15 10:53:53 2010 GMT

    1)      Serial Number: 00
            Revocation Date:Jun 15 10:51:16 2010 GMT
     Done

GUIを使用してCitrix ADCにCRLを追加する

[トラフィック管理] > [SSL] > [CRL] に移動し、CRL を追加します。

CRL 更新パラメータの構成

CRL は、特定の証明書が失効した直後に、定期的に、または場合によっては、認証局によって生成および発行されます。Citrix ADCアプライアンスでCRLを定期的に更新して、無効な証明書で接続しようとするクライアントから保護することをお勧めします。

Citrix ADCアプライアンスは、WebロケーションまたはLDAPディレクトリからCRLを更新できます。更新パラメータと Web ロケーションまたは LDAP サーバを指定する場合、コマンドの実行時にローカルハードディスクドライブに CRL が存在する必要はありません。最初の更新では、CRL File パラメーターで指定されたパスに、ローカルハードディスクドライブにコピーが格納されます。CRL を保存するためのデフォルトのパスは /var/netscaler/sl です。

注:リリース 10.0 以降では、CRL をリフレッシュするメソッドはデフォルトでは含まれていません。HTTP または LDAP メソッドを指定します。以前のリリースからリリース 10.0 以降にアップグレードする場合は、メソッドを追加して、コマンドを再度実行する必要があります。

CLI を使用した CRL 自動リフレッシュの設定

コマンドプロンプトで次のコマンドを入力して、CRL 自動更新を構成し、構成を確認します。

set ssl crl <crlName> [-refresh ( ENABLED | DISABLED )] [-CAcert <string>] [-server <ip_addr|ipv6_addr|*> | -url <URL>] [-method ( HTTP | LDAP )] [-port <port>] [-baseDN <string>] [-scope ( Base | One )] [-interval <interval>] [-day <positive_integer>] [-time <HH:MM>][-bindDN <string>] {-password } [-binary ( YES | NO )]

show ssl crl [<crlName>]

例:

    set CRL crl1  -refresh enabled -method ldap -inform DER -CAcert ca1 -server 10.102.192.192 -port 389 -scope base -baseDN "cn=clnt_rsa4_multicert_der,ou=eng,o=ns,c=in" -time 00:01

    set ssl crl crl1 -refresh enabled -method http -cacert ca1 -port 80 -time 00:10 -url http://10.102.192.192/crl/ca1.crl


    > sh crl

    1)         Name: crl1        Status: Valid,     Days to expiration: 355
                CRL Path: /var/netscaler/ssl/crl1
                Format: PEM      CAcert: ca1
                Refresh: ENABLED          Method: HTTP
                URL: http://10.102.192.192/crl/ca1.crl                 Port:80
                Refresh Time: 00:10
                Last Update: Successful, Date:Tue Jul  6 14:38:13 2010
    Done

GUI を使用して LDAP または HTTP を使用して CRL 自動リフレッシュを構成する

  1. [トラフィック管理] > [SSL] > [CRL] に移動します。
  2. CRL を開き、[CRL 自動更新を有効にする] を選択します。

注:新しいCRLが、CRLの[最終更新時刻]フィールドで指定された実際の更新時刻よりも前に外部リポジトリで更新 されている場合は、Citrix ADCアプライアンスのCRLを直ちに更新する必要があります。

最終更新時刻を表示するには、CRL を選択し、[Details] をクリックします。

CRL の同期

Citrix ADCアプライアンスは、最新の分散CRLを使用して、失効した証明書を持つクライアントがセキュリティで保護されたリソースにアクセスすることを防ぎます。

CRLが頻繁に更新される場合、Citrix ADCアプライアンスは、リポジトリから最新のCRLを取得するための自動メカニズムを必要とします。指定した更新間隔で CRL を自動的に更新するようにアプライアンスを設定できます。

アプライアンスは、定期的に更新する必要がある CRL の内部リストを維持します。これらの指定された間隔で、アプライアンスは更新が必要なCRLのリストをスキャンします。次に、リモート LDAP サーバーまたは HTTP サーバーに接続し、最新の CRL を取得し、ローカル CRL リストを新しい CRL で更新します。

注: CA 証明書が仮想サーバーにバインドされているときに CRL チェックが「必須」に設定されていて、初期 CRL リフレッシュが失敗した場合、CRL と同じ発行者を持つすべてのクライアント認証接続は、CRL が正常にリフレッシュされるまで REVOKED として拒否されます。

CRL リフレッシュを実行する間隔を指定できます。正確な時刻を指定することもできます。

CLI を使用した CRL 自動更新の同期

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

set ssl crl <crlName> [-interval <interval>] [-day <integer>] [-time <HH:MM>]

例:

set ssl crl CRL-1 -refresh ENABLE -interval MONTHLY -days 10 -time 12:00

GUI を使用した CRL 更新の同期

  1. [トラフィック管理] > [SSL] > [CRL] に移動します。
  2. CRL を開き、[CRL 自動更新を有効にする] を選択して、間隔を指定します。

証明書失効リストを使用してクライアント認証を実行する

証明書失効リスト(CRL)がCitrix ADCアプライアンスに存在する場合、CRLチェックの実行が必須かオプションかに関係なく、CRLチェックが実行されます。

ハンドシェイクの成功または失敗は、次の要因の組み合わせによって決まります。

  • CRL チェックのルール
  • クライアント証明書チェックの規則
  • CA 証明書に設定された CRL の状態

次の表に、失効した証明書を含むハンドシェイクの可能な組み合わせの結果を示します。

表1. 失効した証明書を使用したクライアントとのハンドシェイクの結果

CRL チェックのルール クライアント証明書チェックの規則 CA 証明書に設定された CRL の状態 失効した証明書を使用したハンドシェイクの結果
オプション オプション 行方不明 成功
オプション 固定 行方不明 成功
オプション 固定 存在する 失敗
固定 オプション 行方不明 成功
固定 固定 行方不明 失敗
固定 オプション 存在する 成功
固定 固定 存在する 失敗
オプション/必須 オプション 期限切れ 成功
オプション/必須 固定 期限切れ 失敗

注:

  • CRL チェックは、デフォルトではオプションです。オプションから必須へ、またはその逆に変更するには、まず SSL 仮想サーバーから証明書をバインド解除し、オプションを変更した後に再度バインドする必要があります。

  • sh ssl vserverコマンドの出力では、OCSP check: optional は、CRL チェックもオプションであることを意味します。CRL チェックの設定は、CRL チェックが必須に設定されている場合に限り、sh ssl vserver コマンドの出力に表示されます。CRL チェックがオプションに設定されている場合、CRL チェックの詳細は表示されません。

CLI を使用して CRL チェックを設定するには

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

bind ssl vserver <vServerName> -certkeyName <string> [(-CA -crlCheck ( Mandatory | Optional ))]
sh ssl vserver

例:

bind ssl vs v1 -certkeyName ca -CA -crlCheck mandatory
> sh ssl vs 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
HSTS: DISABLED
HSTS IncludeSubDomains: NO
HSTS Max-Age: 0
SSLv2: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED
Push Encryption Trigger: Always
Send Close-Notify: YES

ECC Curve: P_256, P_384, P_224, P_521

1) CertKey Name: ca CA Certificate CRLCheck: Mandatory CA_Name Sent

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

GUI を使用した CRL チェックの設定

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、SSL 仮想サーバーを開きます。
  2. [証明書] セクションをクリックします。
  3. 証明書を選択し、[OCSP および CRL チェック] リストで [CRL 必須] を選択します。

失効または有効な証明書を使用したハンドシェイクの結果

CRL チェックのルール クライアント証明書チェックの規則 CA 証明書に設定された CRL の状態 失効した証明書を使用したハンドシェイクの結果 有効な証明書を使用したハンドシェイクの結果
固定 固定 存在する 失敗 成功
固定 固定 期限切れ 失敗 失敗
固定 固定 行方不明 失敗 失敗
固定 固定 未定義 失敗 失敗
オプション 固定 存在する 失敗 成功
オプション 固定 期限切れ 成功 成功
オプション 固定 行方不明 成功 成功
オプション 固定 未定義 成功 成功
固定 オプション 存在する 成功 成功
固定 オプション 期限切れ 成功 成功
固定 オプション 行方不明 成功 成功
固定 オプション 未定義 成功 成功
オプション オプション 存在する 成功 成功
オプション オプション 期限切れ 成功 成功
オプション オプション 行方不明 成功 成功
オプション オプション 未定義 成功 成功