enrollNestedCMC
enrollNestedCMC 示例从文件中读取现有 CMC 证书请求,将其包装在另一个 CMC 请求中,对此外部请求进行签名,将其提交到证书颁发机构 (CA) ,并将 CA 的证书响应保存到文件中。
位置
) 安装 Microsoft Windows 软件开发工具包 (SDK 时,该示例默认安装在 %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\X509 Certificate Enrollment\VC\enrollNestedCMC 文件夹中。
讨论 (Discussion)
enrollNestedCMC 示例:
- 处理以下命令行参数:
- 输入文件的名称。
- 输出文件的名称。
- 可选的请求模板。
- 从文件中以 base63 编码的字节数组的形式读取现有 CMC 请求,将字节数组转换为 BSTR,创建 IX509CertificateRequestCmc 对象,并使用 BSTR 初始化请求对象。 初始化的对象将成为内部请求。
- 使用在上一步中创建并初始化的内部请求对象初始化另一个 CMC 请求。
- 检索现有签名证书,如果找不到签名证书,则从命令行上指定的模板创建证书请求并尝试注册该证书。 findCertByTemplate 和 enrollCertByTemplate 函数在 enrollCommon.cpp 中定义。
- 从外部 CMC 请求检索 ISignerCertificates 集合,创建新的 ISignerCertificate 对象,使用检索到的签名证书对其进行初始化,并将其添加到集合中。
- 使用 可辨别编码规则 (DER) 对 CMC 请求进行编码,并将请求作为 BSTR 检索。
- 创建 ICertConfig 对象,并使用它来检索包含 CA 配置的字符串。
- 创建 CryptoAPI ICertRequest2 对象,并使用该对象以及包含 CA 配置和证书请求的字符串将请求提交到 CA。
- 检查注册过程的状态,并将 CA 的证书响应保存到文件中。 EncodeToFileW 函数在 enrollCommon.cpp 中定义。
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈