域控制器自动注册 - 更改颁发 CA

域控制器自动注册 - 更改颁发 CA

我们正在清理 Windows PKI/CA 环境并用新服务器替换我们的根 CA。当前的根 CA 多年来一直在颁发以下证书模板(除了下属证书模板):

  • Kerberos 身份验证
  • 域控制器身份验证(我们知道这现在已被 Kerberos 身份验证模板取代)
  • 域控制器(我们知道这现在已经被取代了)
  • 目录电子邮件复制

从属 CA 也已“发布”模板。

我们知道这并不理想,新的根 CA 将被设置为仅颁发从属证书模板。

问题:

删除根 CA 颁发的上述模板后(不是删除模板本身,只是删除该根 CA 颁发的模板),当域控制器自动更新上述证书时,他们是否知道根据域控制器所需的模板查看下属 CA 以更新/颁发新证书? 或者我们是否需要做其他事情来主动向环境中的 DC 颁发新证书?现有证书不会被撤销,因此它们在重新注册之前将一直有效,但我们很好奇,如果原始证书是由旧根 CA 颁发的,重新注册是否会失败。如果允许多个 CA 颁发这些 DC 模板,我们不确定 DC 如何“决定”从哪个 CA 中选择。

附加问题:

您知道在我们替换 rootCA 后,现有 SubCA 颁发的现有证书会产生什么影响吗?我们正在将 rootCA 迁移到新名称:逐步将 CA 迁移到新服务器-- 评论中的其他人问的问题与我问的关于现有证书的问题基本相同,但没有人回复。我的猜测是,只要客户端的受信任根存储中仍有旧 RootCA,中间存储中仍有 SubCA,那么在证书过期之前,他们应该仍拥有良好的证书链,但我希望提前知道确切情况。

答案1

当域控制器自动更新上述证书时,他们是否知道根据域控制器所需的模板查看下属 CA 以更新/颁发新证书?

是的。注册客户端将首先从 AD 中枚举所有支持请求模板的 CA。然后客户端将从此列表中随机选择 CA 发送续订请求。也就是说,从根 CA 中删除所有模板是可以的,客户端将尝试另一个支持此模板的可用 CA。

附言:不过我会考虑将企业根 CA(域加入)转换为独立根 CA(工作组成员),这样您就可以在大多数时间关闭根 CA,因为它与在线无关。您可以每年打开它一两次来发布 CRL 或当您需要签署下属 CA 证书时。但这是另一个问题,只是遵循最佳实践的好方法。

更新 1(2022 年 1 月 21 日)

Microsoft Docs 页面没有显示有关如何枚举 CA 等的任何内容。

注册客户端调用通用IX509注册::注册执行一系列调用(非常简化的步骤):

CA 发现使用[MS-XCEP]

  1. 从注册表中加载策略列表。
  2. 分组策略依据策略编号属性。
  3. 组排序依据成本属性,然后通过验证属性。Kerberos 身份验证具有更高的优先级。其余组按任意顺序排列。
  4. 通过调用以下方法查询每项政策IPolicy::获取策略响应web 方法。响应包含 CA web 服务列表
  5. 响应包含:调用者有权注册的证书模板列表和 CA 端点列表(实现[MS-WSTEP]请参阅证书协议 (英译:证书协议) 以及受支持的证书模板信息。
  6. 准备空列表。
  7. 对于每个已排序的策略组:
  8. 订购 CA 依据成本属性,然后通过验证属性。Kerberos 身份验证具有更高的优先级。其余组按任意顺序放置。消除调用者没有权限的 CA。按相同顺序将有序 CA 附加到列表中。
  9. 重复(8),直到所有CA都添加到列表中。
  10. 对于剩余列表中的每个 CA:
  11. 生成证书请求并调用ICertRequest::提交向选定的 CA 提交请求。
  12. 重复(11),直到调用成功。

CA 发现使用[MS-WCCE]

  1. 做 do-while 循环调用ICertConfig::下一步枚举所有自动发现的 CA(本地、在 AD 中注册、存储在共享目录中等)。这将生成所有可能的 CA 的列表。
  2. 每个 CA 客户端都使用作为参数进行ICertRequest2::GetCAProperty调用。消除离线 CA。CR_PROP_TEMPLATESpropID
  3. 对(1)中获得的过滤列表,剔除那些不支持请求模板的CA。
  4. 如果CA 站点意识配置后,过滤与客户端位于同一 ADDS 站点的 CA 列表。如果未配置 CA 站点感知或客户端所在的同一 ADDS 站点中没有 CA,则不进行过滤。
  5. 称呼ICertRequest::获取CACertificate检索 CA 证书并验证每个证书。消除证书无效或不受信任的 CA。
  6. 从剩余列表中选择任意 CA,生成证书请求并调用ICertRequest::提交向选定的 CA 提交请求。

再次,这是注册客户端发现 CA 和提交证书请求的简化任务序列。

更新 2

您知道我们替换 rootCA 后,从现有 SubCA 颁发的现有证书会产生什么影响吗?

只要根 CA 受到客户端信任,实际上就没有什么事情。

相关内容