OCSP による証明書ステータスの監視
オンライン証明書状態プロトコル (OCSP) は、クライアントの SSL 証明書の状態を決定するために使用されるインターネットプロトコルです。Citrix ADC アプライアンスは、RFC 2560 で定義されている OCSP をサポートしています。OCSP には、タイムリーな情報という点で、証明書失効リスト (CRL) よりも大きな利点があります。クライアント証明書の最新の失効ステータスは、多額の金銭や価値の高い株式取引を含む取引で特に役立ちます。また、使用するシステムリソースとネットワークリソースも少なくなります。Citrix ADC の OCSP 実装には、要求のバッチ処理と応答のキャッシュが含まれます。
OCSP の実装
Citrix ADCアプライアンスでのOCSP検証は、SSLハンドシェイク中にアプライアンスがクライアント証明書を受信したときに開始されます。証明書を検証するために、アプライアンスは OCSP 要求を作成し、それを OCSP 応答側に転送します。そのために、アプライアンスはローカルに設定された URL を使用します。アプライアンスがサーバからの応答を評価し、トランザクションを許可するか拒否するかを決定するまで、トランザクションは中断状態になります。サーバーからの応答が構成された時間を超えて遅延し、他のレスポンダーが構成されていない場合、アプライアンスは、OCSPチェックがオプションに設定されているか必須に設定されているかに応じて、トランザクションを許可するか、エラーを表示します。
アプライアンスは、OCSP 要求のバッチ処理と OCSP 応答のキャッシュをサポートし、OCSP 応答側の負荷を軽減し、応答を高速化します。
OCSP 要求のバッチ処理
アプライアンスは、クライアント証明書を受信するたびに、OCSP レスポンダに要求を送信します。OCSP レスポンダが過負荷にならないように、アプライアンスは同じ要求内の複数のクライアント証明書のステータスを照会できます。この機能を効率的に機能させるには、バッチの形成を待機している間に単一の証明書の処理が過度に遅延しないように、タイムアウトを定義する必要があります。
OCSP 応答キャッシュ
OCSP レスポンダから受信した応答をキャッシュすると、クライアントへの応答が高速になり、OCSP レスポンダの負荷が軽減されます。OCSP レスポンダからクライアント証明書の失効ステータスを受け取ると、アプライアンスは応答をローカルにキャッシュします。SSL ハンドシェイク中にクライアント証明書を受信すると、アプライアンスはまずローカルキャッシュにこの証明書のエントリをチェックします。(キャッシュのタイムアウト制限内で)有効なエントリが見つかった場合、そのエントリが評価され、クライアント証明書が受け入れられるか拒否されます。証明書が見つからない場合、アプライアンスは OCSP レスポンダに要求を送信し、設定された時間だけ応答をローカルキャッシュに保存します。
注: リリース 12.1 ビルド 49.x から、キャッシュのタイムアウト制限は最大 43200 分 (30 日) に増加しました。以前は1440分(1日)でした。この制限を大きくすると、OCSP サーバー上のルックアップを減らし、ネットワークやその他の問題によって OCSP サーバーに到達できない場合に SSL/TLS 接続障害を回避できます。
OCSP レスポンダの設定
OCSP の構成には、OCSP レスポンダーの追加、OCSP レスポンダーの証明機関 (CA) 証明書へのバインド、証明書の SSL 仮想サーバーへのバインドが含まれます。すでに設定されている OCSP 応答側に別の証明書をバインドする必要がある場合は、まず応答側のバインドを解除してから、応答側を別の証明書にバインドする必要があります。
CLI を使用した OCSP レスポンダーの追加
コマンドプロンプトで、次のコマンドを入力して OCSP を構成し、構成を確認します。
add ssl ocspResponder <name> -url <URL> [-cache ( ENABLED | DISABLED )[-cacheTimeout <positive_integer>]] [ -batchingDepth <positive_integer>][-batchingDelay <positive_integer>] [-resptimeout <positive_integer>] [-responderCert <string> | -trustResponder] [-producedAtTimeSkew <positive_integer>][-signingCert <string>][-useNonce ( YES | NO )][ -insertClientCert( YES | NO )]
<!--NeedCopy-->
bind ssl certKey [<certkeyName>] [-ocspResponder <string>] [-priority <positive_integer>]
<!--NeedCopy-->
bind ssl vserver <vServerName>@ (-certkeyName <string> ( CA [-ocspCheck ( Mandatory | Optional )]))
<!--NeedCopy-->
show ssl ocspResponder [<name>]
<!--NeedCopy-->
例:
add ssl ocspResponder ocsp_responder1 -url "http:// www.myCA.org:80/ocsp/" -cache ENABLED -cacheTimeout 30 -batchingDepth 8 -batchingDelay 100 -resptimeout 100 -responderCert responder_cert -producedAtTimeSkew 300 -signingCert sign_cert -insertClientCert YES
<!--NeedCopy-->
bind ssl certKey ca_cert -ocspResponder ocsp_responder1 -priority 1
<!--NeedCopy-->
bind ssl vserver vs1 -certkeyName ca_cert -CA -ocspCheck Mandatory
<!--NeedCopy-->
sh ocspResponder ocsp_responder1
1)Name: ocsp_responder1
URL: http://www.myCA.org:80/ocsp/, IP: 192.128.22.22
Caching: Enabled Timeout: 30 minutes
Batching: 8 Timeout: 100 mS
HTTP Request Timeout: 100mS
Request Signing Certificate: sign_cert
Response Verification: Full, Certificate: responder_cert
ProducedAt Time Skew: 300 s
Nonce Extension: Enabled
Client Cert Insertion: Enabled
Done
<!--NeedCopy-->
show certkey ca_cert
Name: ca_cert Status: Valid, Days to expiration:8907
Version: 3
…
1) VServer name: vs1 CA Certificate
1) OCSP Responder name: ocsp_responder1 Priority: 1
Done
<!--NeedCopy-->
sh ssl vs vs1
Advanced SSL configuration for VServer vs1:
DH: DISABLED
…
1) CertKey Name: ca_cert CA Certificate OCSPCheck: Mandatory
1) Cipher Name: DEFAULT
Description: Predefined Cipher Alias
Done
<!--NeedCopy-->
CLI を使用した OCSP レスポンダーの変更
レスポンダ名は変更できません。他のすべてのパラメータは、set ssl ocspResponder
コマンドを使用して変更できます。
コマンドプロンプトで次のコマンドを入力して、パラメーターを設定し、構成を確認します。
set ssl ocspResponder <name> [-url <URL>] [-cache ( ENABLED | DISABLED)] [-cacheTimeout <positive_integer>] [-batchingDepth <positive_integer>] [-batchingDelay <positive_integer>] [-resptimeout <positive_integer>] [ -responderCert <string> | -trustResponder][-producedAtTimeSkew <positive_integer>][-signingCert <string>] [-useNonce ( YES | NO )]
unbind ssl certKey [<certkeyName>] [-ocspResponder <string>]
bind ssl certKey [<certkeyName>] [-ocspResponder <string>] [-priority <positive_integer>]
show ssl ocspResponder [<name>]
<!--NeedCopy-->
GUI を使用して OCSP レスポンダを構成する
- [トラフィック管理] > [SSL] > [OCSP レスポンダー] に移動し、OCSP レスポンダーを設定します。
- [トラフィック管理] > [SSL] > [証明書] に移動し、証明書を選択し、[アクション] リストで [OCSP バインディング] を選択します。OCSP レスポンダをバインドします。
- 「 トラフィック管理 」>「 負荷分散 」>「 仮想サーバー 」に移動し、仮想サーバーを開き、「証明書」セクションをクリックして CA 証明書をバインドします。
- 必要に応じて、select OCSP Mandatoryを選択します。