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

以下标志可用于指定返回的证书的格式。

含义
CR_OUT_BASE64HEADER
带有开始/结束的 BASE64 格式。
CR_OUT_BASE64
不带开始/结束的 BASE64 格式。
CR_OUT_BINARY
二进制格式。
 

以下标志可以与格式标志结合使用,以指定完整的证书链应包含在请求的 CA 证书中。 否则,仅返回请求的 CA 证书 (X.509 格式) 。

含义
CR_OUT_CHAIN
在 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

另请参阅

CCertRequest

ICertRequest

ICertRequest2

ICertRequest3