生成证书

生成证书时调用的顺序如下所示:

  1. 证书颁发机构 (CA) 通过调用 ICertPolicyICertExit (初始化模块,在服务器初始化) 发生一次。 CA 将通过调用 ICertPolicy2::InitializeICertExit::Initialize 初始化策略和退出模块。
  2. 中介通过 ICertConfig 调用 CA (每次中间初始化) 一次。 中介通过调用 ICertConfig::GetConfig 来查找所需的配置字符串。
  3. 客户端通过特定于中介 (的接口调用中介,每个请求) 一次。 客户端向中介发送 证书请求 。 例如,Microsoft Internet Explorer 通过证书注册控制发送请求以Microsoft Internet Information Services。
  4. 每个请求) 一次,通过 ICertRequest (中介到 CA。 中介通过 ICertRequest::Submit 将证书请求发送到 CA。 对于Internet Information Services,可以通过Active Server Pages脚本完成此操作。
  5. CA 通过 ICertPolicy 接口调用策略模块, (每个请求) 一次。 CA 通过调用 ICertPolicy::VerifyRequest 通知策略模块请求已到达。 策略模块可以通过调用 ICertServerPolicy 接口的方法来检查请求并更改证书。 然后,策略模块可以指示请求 (正常(如果是这样,则会在此时生成证书) 、拒绝请求或应暂停请求)。
  6. (可选) 管理员通过 ICertAdmin 接口调用 CA。 如果请求已暂停,管理员可以重新提交或拒绝请求,或修改请求属性和扩展。 请注意,如果重新提交请求,则策略模块将有另一个机会来处理请求 (,因为调用 ICertPolicy::VerifyRequest) 。 可以通过证书颁发机构 MMC 管理单元或使用 ICertAdmin 的另一个应用程序执行重新提交或拒绝请求的任务。
  7. CA 通过 ICertExit 接口调用退出模块。 如果退出模块在调用 ICertExit::Initialize 时指示了 (,在步骤 1) 看到颁发证书或挂起的请求感兴趣,CA 将调用 ICertExit::Notify
  8. 退出模块通过 ICertServerExit 接口调用 CA。 退出模块可以通过调用 ICertServerExit 的方法来检查请求和新证书。