OCSPで証明書のステータスを監視する
Online Certificate Status Protocol (OCSP) は、クライアント SSL 証明書の状態を判断するために使用されるインターネットプロトコルです。NetScalerアプライアンスは、RFC 2560で定義されているOCSPをサポートしています。OCSP には、タイムリーな情報の点で、証明書失効リスト (CRL) よりも大きな利点があります。クライアント証明書の最新の失効ステータスは、多額の資金や高額株式取引を含む取引で特に役立ちます。また、使用するシステムリソースとネットワークリソースも少なくなります。NetScalerのOCSPの実装には、リクエストのバッチ処理と応答キャッシュが含まれます。
OCSP の実装
NetScalerアプライアンスのOCSP検証は、SSLハンドシェイク中にアプライアンスがクライアント証明書を受け取ったときに開始されます。証明書を検証するために、アプライアンスは OCSP 要求を作成し、それを OCSP レスポンダに転送します。そのために、アプライアンスはローカルに設定された URL を使用します。アプライアンスがサーバーからの応答を評価し、トランザクションを許可するか拒否するかを決定するまで、トランザクションは中断状態になります。サーバからの応答が設定された時間を超えて遅延し、他の応答側が設定されていない場合、アプライアンスは OCSP チェックがそれぞれオプションに設定されているか必須に設定されているかに応じて、トランザクションを許可するか、エラーを表示します。
アプライアンスは、OCSP 要求のバッチ処理と OCSP 応答のキャッシュをサポートしているため、OCSP 応答側の負荷が軽減され、応答が速くなります。
OCSP リクエストのバッチング
アプライアンスはクライアント証明書を受信するたびに、OCSP レスポンダに要求を送信します。OCSP レスポンダーの過負荷を避けるため、アプライアンスは同じリクエストで複数のクライアント証明書のステータスを照会できます。この機能を効率的に機能させるには、バッチの作成を待っている間に 1 つの証明書の処理が過度に遅延しないように、タイムアウトを定義する必要があります。
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 証明書をバインドします。
- オプションで、「 OCSP 必須」を選択します。