enrollCustomPKCS10

enrollCustomPKCS10 示例创建一个自定义 PKCS #10 请求,将其提交到独立证书颁发机构 (CA) ,并在证书存储中安装颁发的证书。 独立 CA 不需要 Active Directory,也不使用模板。

位置

安装 Microsoft Windows软件开发工具包 (SDK) 时,该示例默认安装在 %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\enrollmentCustomPKCS10 文件夹中。

讨论 (Discussion)

enrollCustomPKCS10 示例:

  1. 处理命令行参数。 命令行应包含 X.500 证书使用者名称、电子邮件 (RFC822) 名称,以及增强型密钥用法 (EKU) 对象标识符 (OID) 。 例如,可以指定要注册 user1@example.com的下列参数:
    • 使用者名称:“CN=user1,DC=example,DC=com
    • RFC822 名称: user1@example.com
    • 客户端身份验证 EKU OID:1.3.6.1.5.5.7.3.2
  2. 创建 IX509CertificateRequestPkcs10 对象,并通过指定 X509CertificateEnrollmentContext 枚举的 ContextUser 值来初始化最终用户。
  3. 创建 IX500DistinguishedName 对象,使用该对象将使用者名称编码为字节数组,并将数组添加到 PKCS #10 请求对象。
  4. 创建 IObjectId 对象,使用命令行中指定的 EKU 对象标识符 (OID) 初始化它,创建 IObjectIds 集合,将新的 IObjectId ( EKU) 对象添加到集合,使用集合初始化 IX509ExtensionEnhancedKeyUsage 对象并将此对象添加到请求中。
  5. 创建 IAlternativeName 对象,使用命令行中指定的 RFC822 名称初始化它,创建 IAlternativeNames 集合,将新的 IAlternativeName (RFC822 名称) 对象添加到集合,创建 IX509ExtensionAlternativeNames 对象并将此对象添加到请求中。
  6. 创建 IX509Enrollment 对象,使用 IX509CertificateRequestPkcs10 对象初始化它,并检索包含 base64 编码请求的字符串。
  7. 创建 ICertConfig 对象,并使用它检索包含 CA 配置的字符串。
  8. 创建 CryptoAPI ICertRequest2 对象,并使用它加上包含 CA 配置和证书请求的字符串,以将请求提交到 CA。
  9. 检查提交状态,如果注册成功,请将证书安装到证书存储中。

PKCS #10 请求

使用包含的示例