Share via


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 函式。

如需擴充錯誤資訊,請呼叫 GetLastErrorGetLastError函式傳回的可能錯誤碼包括,但不限於下列各項。

傳回碼 描述
ERROR_INVALID_PARAMETER
一或多個參數無效。
CRYPT_E_NOT_IN_REVOCATION_DATABASE
結束憑證不包含 AIA) URL (OCSP 授權單位資訊存取。

備註

當 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
程式庫 Crypt32.lib
Dll Crypt32.dll

另請參閱

CertCloseServerOcspResponse