本文提供有关取代证书模板的问题以及对用户 AD 存储的影响的解决方法。
原始 KB 数: 2884551
现象
根据其他证书模板取代的证书模板删除证书,用户 AD 存储中作为自动注册的一部分在 XP/W2k3 中工作。 重现步骤(Vista 及更高版本):
- 配置用户自动注册策略(确保已启用策略,并在自动注册配置窗口中选中这两个复选框。
- 重复的用户证书模板(例如 TestTemplate1),确保激活 AD 中的证书发布,并分配给测试用户对模板的读取、注册和自动注册权限。
- 在 CA 上发布 TestTemplate1 模板。
- 以测试用户身份登录,并确保用户基于模板 TestTemplate1 通过自动注册获取证书。
- 通过复制 TestTemplate1(例如 TestTemplate2 的名称)来配置新证书模板,该模板在 TestTemplate2 取代 TestTemplate1 的超标选项卡中设置,确保激活 AD 中的证书发布,并仔细检查测试用户是否设置了 TestTemplate2 的“读取”、“注册”和“自动注册”权限。
- 在 CA 上发布 TestTemplate2 模板。
- 以测试用户身份登录,并检查用户是否通过自动注册获取基于新模板 TestTemplate2 的证书。
- 在 DC 上,打开 dsa.msc,找到测试用户,打开属性,将有两个证书在 AD 中发布,一个基于 TestTemplate1,另一个基于 TestTemplate2(在 XP/W2k3 上,只有一个证书,因为基于被取代的模板的证书 TestTemplate1 将被删除)。
原因
此功能已在 Vista 和后续 Windows 版本中删除。
解决方法
解决方法是删除特定模板颁发的所有证书:对于 V1 模板:certutil -delstore -user ldap:InternalTemplateName For a V2 或更高版本模板:certutil -delstore -user ldap:TemplateOID InternalTemplateName 是非本地化模板名称(AD 中模板对象的 CN)。 上述命令将从 DS 存储中删除使用特定模板颁发的所有证书。
详细信息
代码更改是在 Windows Vista/2008 时间范围内进行的,目的是解决在引入证书漫游功能后引发的问题(例如,可以在其他计算机上使用未知 CSP 创建一个结束证书并使用凭据漫游,或者漫游的基于 RSA 的证书的颁发 CA 具有未知签名算法-> 这两种情况都会导致从 AD 中删除最终证书, 即使它有效也是如此。