iCertRequest::GetCACertificate 方法 (certcli.h)
GetCACertificate 方法返回证书服务服务器的证书颁发机构 (CA) 证书。
语法
HRESULT GetCACertificate(
[in] LONG fExchangeCertificate,
[in] const BSTR strConfig,
[in] LONG Flags,
[out, retval] BSTR *pstrCertificate
);
参数
[in] fExchangeCertificate
一个布尔值,指定要返回的 CA 证书。 如果 fExchangeCertificate 设置为 false,则将返回 CA 的 签名证书 。 CA 的签名证书可用于验证 CA 颁发的证书上的签名。
Windows Server 2003: 如果 fExchangeCertificate 设置为 true,则将返回 CA 的 Exchange 证书。 CA 的 Exchange 证书可用于加密发送到 CA 的请求。
从 Windows 7 和 Windows Server 2008 R2 开始,在 https:// 注册期间将忽略此参数,如果成功,函数将始终返回 CA 交换证书。 若要检索注册 Web 服务的 CA 签名证书,请在具有 CAPropCertificate EnrollmentCAProperty 枚举值的 ICertificationAuthority 接口上使用 Property 方法。
请注意,TRUE 在 Microsoft 头文件中 (定义,) C/C++ 程序员为一个,而 Visual Basic 将 True 关键字 (keyword) 定义为负数。 因此,Visual Basic 开发人员必须使用一个 (而不是 True) 将此参数设置为 TRUE。 但是,若要将此参数设置为 FALSE,Visual Basic 开发人员可以使用零或 False。
[in] strConfig
表示证书服务服务器的有效配置字符串。 字符串可以是注册服务器的 HTTPS URL,也可以采用 ComputerName\CAName 格式,其中 ComputerName 是服务器的网络名称, CAName 是 证书颁发机构的公用名称,如证书服务设置过程中输入的那样。 有关配置字符串名称的信息,请参阅 ICertConfig。
Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支持将 HTTPS URL 作为输入。
[in] Flags
以下标志可用于指定返回的证书的格式。
值 | 含义 |
---|---|
|
带有开始/结束的 BASE64 格式。 |
|
不带开始/结束的 BASE64 格式。 |
|
二进制格式。 |
以下标志可以与格式标志结合使用,以指定完整的证书链应包含在请求的 CA 证书中。 否则,仅返回请求的 CA 证书 (X.509 格式) 。
值 | 含义 |
---|---|
|
在 PKCS #7 中包含完整的证书链。 |
[out, retval] pstrCertificate
指向 BSTR 的指针,该 BSTR 包含指定格式的证书服务服务器的 CA 证书。
返回值
C++
如果该方法成功,该方法将返回S_OK。成功完成此方法后,*pstrCertificate 设置为包含 CA 证书的 BSTR 。 若要使用此方法,请创建 BSTR 类型的变量,将该变量设置为 等于 NULL,并将此变量的地址作为 pstrCertificate 传递。
使用完 *pstrCertificate 后,通过调用 SysFreeString 函数释放它。
如果方法失败,它将返回指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 常见 HRESULT 值。
VB
证书服务服务器的 CA 证书,采用指定格式。备注
管理任务使用 DCOM。 调用早期版本的 Certadm.h 中定义的此接口方法的代码将在基于 Windows 的服务器上运行,前提是客户端和服务器都运行相同的 Windows 操作系统。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | certcli.h (包括 Certsrv.h) |
Library | Certidl.lib |
DLL | Certcli.dll |