証明書失効リスト
CA によって発行された証明書は、通常、有効期限まで有効です。ただし、状況によっては、CAは有効期限が切れる前に発行された証明書を取り消す場合があります。たとえば、所有者の秘密鍵が危険にさらされると、会社または個人の名前が変更されたり、サブジェクトとCAの関連付けが変更されたりします。
証明書失効リスト (CRL) は、シリアル番号と発行者によって無効な証明書を識別します。
証明機関は CRL を定期的に発行します。CRLを使用して無効な証明書を示すクライアント要求をブロックするようにCitrix ADCアプライアンスを構成できます。
CA からの CRL ファイルがすでに存在する場合は、そのファイルを Citrix ADC アプライアンスに追加します。更新オプションを設定できます。また、Webの場所またはLDAPの場所から、指定した間隔でCRLファイルを自動的に同期するようにCitrix ADCを構成することもできます。アプライアンスは、PEM または DER ファイル形式の CRL をサポートします。Citrix ADCアプライアンスに追加されるCRLファイルのファイル形式を必ず指定してください。
ADCをCAとして使用してSSL展開で使用される証明書を作成した場合は、CRLを作成して特定の証明書を取り消すこともできます。この機能を使用すると、たとえば、Citrix ADCで作成された自己署名証明書が、実稼働環境や特定の日付以降に使用されないようにできます。
注:
デフォルトでは、CRLはCitrix ADCアプライアンス上の/var/netscaler/sslディレクトリに保存されます。
ADCアプライアンスでCRLを作成する
ADCアプライアンスを使用してCAとして機能し、自己署名証明書を作成できるため、次の証明書を取り消すこともできます。
- 作成した証明書。
- CA証明書を所有している証明書。
アプライアンスは、これらの証明書の CRL を作成する前に、無効な証明書を取り消す必要があります。アプライアンスは、失効した証明書のシリアル番号をインデックス・ファイルに保存し、証明書が失効するたびにファイルを更新します。インデックスファイルは、証明書が最初に失効したときに自動的に作成されます。
CLI を使用して証明書を取り消すか、CRL を作成する
コマンドプロンプトで、次のコマンドを入力します。
create ssl crl <CAcertFile> <CAkeyFile> <indexFile> (-revoke <input_filename> | -genCRL <output_filename>)
<!--NeedCopy-->
例:
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
<!--NeedCopy-->
GUI を使用して証明書を取り消すか、CRL を作成する
- [トラフィック管理] > [SSL] に移動し、[はじめに] グループで [CRL 管理] を選択します。
- 証明書の詳細を入力し、 [操作の選択] リストで [証明書の取り消 し] または [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>]
<!--NeedCopy-->
例:
> 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
<!--NeedCopy-->
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>]
<!--NeedCopy-->
例:
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
<!--NeedCopy-->
GUI を使用して LDAP または HTTP を使用して CRL 自動リフレッシュを構成する
- [トラフィック管理] > [SSL] > [CRL] に移動します。
- 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>]
<!--NeedCopy-->
例:
set ssl crl CRL-1 -refresh ENABLE -interval MONTHLY -days 10 -time 12:00
<!--NeedCopy-->
GUI を使用した CRL 更新の同期
- [トラフィック管理] > [SSL] > [CRL] に移動します。
- 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
<!--NeedCopy-->
例:
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
<!--NeedCopy-->
GUI を使用した CRL チェックの設定
- [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、SSL 仮想サーバーを開きます。
- [証明書] セクションをクリックします。
- 証明書を選択し、[OCSP および CRL チェック] リストで [CRL 必須] を選択します。
失効または有効な証明書を使用したハンドシェイクの結果
CRL チェックのルール | クライアント証明書チェックの規則 | CA 証明書に設定された CRL の状態 | 失効した証明書を使用したハンドシェイクの結果 | 有効な証明書を使用したハンドシェイクの結果 |
---|---|---|---|---|
固定 | 固定 | 存在する | 失敗 | 成功 |
固定 | 固定 | 期限切れ | 失敗 | 失敗 |
固定 | 固定 | 行方不明 | 失敗 | 失敗 |
固定 | 固定 | 未定義 | 失敗 | 失敗 |
オプション | 固定 | 存在する | 失敗 | 成功 |
オプション | 固定 | 期限切れ | 成功 | 成功 |
オプション | 固定 | 行方不明 | 成功 | 成功 |
オプション | 固定 | 未定義 | 成功 | 成功 |
固定 | オプション | 存在する | 成功 | 成功 |
固定 | オプション | 期限切れ | 成功 | 成功 |
固定 | オプション | 行方不明 | 成功 | 成功 |
固定 | オプション | 未定義 | 成功 | 成功 |
オプション | オプション | 存在する | 成功 | 成功 |
オプション | オプション | 期限切れ | 成功 | 成功 |
オプション | オプション | 行方不明 | 成功 | 成功 |
オプション | オプション | 未定義 | 成功 | 成功 |