CertOpenServerOcspResponse 関数 (wincrypt.h)

CertOpenServerOcspResponse 関数は、サーバー証明書チェーンに関連付けられているオンライン証明書状態プロトコル (OCSP) 応答へのハンドルを開きます。

構文

HCERT_SERVER_OCSP_RESPONSE CertOpenServerOcspResponse(
  [in] PCCERT_CHAIN_CONTEXT                 pChainContext,
  [in] DWORD                                dwFlags,
       PCERT_SERVER_OCSP_RESPONSE_OPEN_PARA pOpenPara
);

パラメーター

[in] pChainContext

証明書チェーンを含む CERT_CHAIN_CONTEXT 構造体のアドレス。

[in] dwFlags

意味
0
0x00000000
この API は、返される前に最初の OCSP 応答を取得しようとします。つまり、取得中にブロックされます。
CERT_SERVER_OCSP_RESPONSE_ASYNC_FLAG
0x00000001
このフラグを設定すると、最初の同期取得を行わずにすぐにが返されます。

pOpenPara

このパラメーターは使用されず、 NULL である必要があります。

戻り値

成功した場合は、サーバー証明書チェーンに関連付けられている OCSP 応答へのハンドルを返します。それ以外の場合は NULL。 このハンドルは、不要になったときに CertCloseServerOcspResponse 関数に渡す必要があります。

拡張エラー情報については、 GetLastError を呼び出します。 GetLastError 関数によって返される可能性のあるエラー コードには、次のものが含まれますが、これらに限定されません。

リターン コード 説明
ERROR_INVALID_PARAMETER
1 つ以上のパラメーターが無効です。
CRYPT_E_NOT_IN_REVOCATION_DATABASE
終了証明書に OCSP 機関情報アクセス (AIA) URL が含まれていません。

解説

dwFlags が 0 に設定されている場合、CertOpenServerOcspResponse 関数は、返される前に初期 OCSP 応答の取得を試みます。 取得中にプロセス スレッドがブロックされます。 CertOpenServerOcspResponse 関数は、時間有効な OCSP 応答をプリフェッチするバックグラウンド スレッドを作成します。 最初の OCSP 応答を正常に取得できない場合でも、上記のいずれかのエラーケースがない場合は、NULL 以外のハンドルが返されます。

dwFlags が 1 またはCERT_SERVER_OCSP_RESPONSE_ASYNC_FLAGに設定されている場合、CertOpenServerOcspResponse 関数は、最初の同期取得を行わずに直ちにを返します。

CertOpenServerOcspResponse 関数は、pChainContext パラメーターで表されるチェーン コンテキストの参照カウントをインクリメントします。 チェーン コンテキストの使用が完了したら、 CertCloseServerOcspResponse 関数を呼び出して、返されたハンドルを閉じます。

CertOpenServerOcspResponse 関数は、次の関数で使用される構成設定を初期化します。

最初に、 CertOpenServerOcspResponse 関数は Wincrypt.h の既定値に基づいて設定を初期化します。 関数は、その後、 CERT_CHAIN_CONFIG_REGPATHで定義されているレジストリ キーを検出すると、以前に初期化された値をレジストリ値で更新します。

この関数では、次の構成設定名と既定値が初期化されます。

  • CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_VALUE_NAME

    L"SrvOcspRespMinValiditySeconds"

    CertGetServerOcspResponseContext によって返されるサーバー OCSP 応答の最小有効期間。 OCSP 応答の有効性は、クライアントが時間有効として扱うのに十分な長さである必要があります。

  • CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_DEFAULT

    (10 × 60)

    10 分。

  • CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME

    L"SrvOcspRespUrlRetrievalTimeoutMilliseconds"

    これは、OCSP 応答プリフェッチ ワイヤ URL 取得がタイムアウトするまでの最大時間です。

  • CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT

    (15 × 1000)

    15 秒。

  • CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME

    L"SrvOcspRespMaxBeforeNextUpdateSeconds"

    これは、OCSP 応答の NextUpdate 日付より前のサーバー OCSP 応答プリフェッチ取得を実行する最大秒数です。 サーバー OCSP 応答スレッドは、現在の時刻が NextUpdate 日付からプリフェッチ取得を実行する秒数を差し引いた値以上になるまで待機します。

  • CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT

    (4 ×60 × 60)

    4 時間です。

  • CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME

    L"SrvOcspRespMinBeforeNextUpdateSeconds"

    これは、OCSP 応答の NextUpdate 日付より前のサーバー OCSP 応答プリフェッチ取得を実行する最小秒数です。 現在の時刻が NextUpdate 日付からこの秒数を差し引いた値以上の場合、サーバー OCSP 応答スレッドは、NextUpdate 日付に CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME 秒数を加えた後、プリフェッチ取得を実行するまで待機します。

  • CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT

    (2 × 60)

    2 分。

  • CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME

    L"SrvOcspRespMinAfterNextUpdateSeconds"

    これは、OCSP 応答の NextUpdate 日付より後にサーバー OCSP 応答プリフェッチ取得を実行する最小秒数です。 現在の時刻が NextUpdate 日付から CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME 秒数を引いたが NextUpdate 日付より小さい場合、サーバー OCSP 応答スレッドは、NextUpdate 日付の後にこの秒数を待機してプリフェッチ取得を実行します。

  • CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT

    (1 × 60)

    1 分。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll

こちらもご覧ください

CertCloseServerOcspResponse