本文有助于解决从 CA Web 注册页请求证书时出现的错误“找不到证书模板”。
适用于: Windows Server(所有支持的版本)原始 KB 数: 811418
现象
当用户尝试从证书颁发机构(CA)Web 注册页请求证书时,用户可能会收到以下错误消息:
找不到证书模板。 你无权从此 CA 请求证书,或者访问 Active Directory 时出错。
如果 Web 注册页位于企业 CA 服务器上的 Active Directory 域中,则会发生此行为。 无论 Web 注册页位于同一服务器上还是位于不同的成员服务器上,都会出现这种情况。
原因
CA Web 注册页对两个值执行区分大小写的字符串比较。 一个值为证书服务器上的文件夹中的 Certdat.inc 文件中%systemroot%\System32\Certsrv的 sServerConfig 值,另一个值是 Active Directory 中 pkiEnrollmentService 对象的 dnsHostName 属性。 如果两个字符串不匹配,包括大小写匹配项,则注册将失败。
解决方法
若要更正此行为,请执行以下步骤:
-
查看 pkiEnrollmentService** 对象的 Active Directory dNSHostName 属性**。 此对象位于以下位置:
CN= CertificateServer,CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration,DC= MyDomain,DC=com
若要查看 dNSHostName 属性,请使用 ADSIEdit.msc 或LDP.exe。
-
编辑 Certdat.inc 文件,以便 sServerConfig 的值与 dNSHostName 属性的值相同,后跟证书颁发机构名称。
注意
sServerConfig 值必须与 dNSHostName 属性完全相同。 如果这不是真的,将继续收到相同的错误。
-
例如,如果证书颁发机构的 DNS 主机名为 server1.domain.local,并且证书颁发机构的名称为 MYCA, 然后确保 CN=MYCA、CN=Enrollment Services、CN=Public Key Services、CN=Services、CN=Configuration、DC=Domain、DC=local* 对象设置为 server1.domain.local*** 和证书颁发机构文件夹中 certdat.inc 文件中
%systemroot%\system32\certsrv的 certdat.local 和 sServerConfig 的 dNSHostName 属性应设置为 server1.domain.local\MYCA。 -
让想要请求证书的用户重启 Internet Explorer。 这样,新凭据便可以传递到 CA。
注意
此外,请确保向用户授予对用户请求的证书模板的“读取”和“注册”权限。 可以使用 ADSIEdit 管理单元或证书模板管理单元授予这些权限。