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
值 | 含义 |
---|---|
|
此 API 将尝试在返回之前检索初始 OCSP 响应,这意味着它将在检索期间被阻止。 |
|
将此标志设置为立即返回,而无需进行初始同步检索。 |
pOpenPara
不使用此参数,必须为 NULL。
返回值
如果成功,则返回与服务器证书链关联的 OCSP 响应的句柄;否则为 NULL。 如果不再需要此句柄,则必须将此句柄传递给 CertCloseServerOcspResponse 函数。
有关扩展的错误信息,请调用 GetLastError。 GetLastError 函数返回的可能错误代码包括但不限于以下内容。
返回代码 | 说明 |
---|---|
|
一个或多个参数无效。 |
|
结束证书不包含 OCSP 机构信息访问 (AIA) URL。 |
备注
当 dwFlags 设置为 0 时, CertOpenServerOcspResponse 函数在返回之前会尝试检索初始 OCSP 响应。 它在检索期间阻止其进程线程。 CertOpenServerOcspResponse 函数创建一个后台线程,用于预提取时间有效的 OCSP 响应。 如果无法成功检索第一个 OCSP 响应,如果不是上述错误情况之一,仍会返回非 NULL 句柄。
当 dwFlags 设置为 1 或 CERT_SERVER_OCSP_RESPONSE_ASYNC_FLAG时, CertOpenServerOcspResponse 函数将立即返回,而不会进行初始同步检索。
CertOpenServerOcspResponse 函数递增 pChainContext 参数表示的链上下文的引用计数。 使用完链上下文后,通过调用 CertCloseServerOcspResponse 函数关闭返回的句柄。
CertOpenServerOcspResponse 函数初始化以下函数所使用的配置设置:
- CertAddRefServerOcspResponse
- CertCloseServerOcspResponse
- CertGetServerOcspResponseContext
- CertAddRefServerOcspResponseContext
- CertFreeServerOcspResponseContext
以下配置设置名称和默认值由此函数初始化:
-
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 |