全部Windows 2K8R2 SP1环境。
我的域中有一个有效的企业证书颁发机构。我想向外部独立机器颁发计算机证书(用于服务器身份验证)。因此,我将证书颁发机构 Web 注册、证书注册 Web 服务和证书注册策略 Web 服务角色服务添加到我的 ECA。
现在,在我的独立机器上,我浏览到http://myCA/certsrv。我发现我只能申请“用户证书”。据我所知,在高级证书申请中,仍然没有申请计算机证书或任何可以提供我所需内容的选项。
因此,我编辑了 ECA 上的 certrqtp.inc 文件,将 rgAvailReqTypes(1,5) 替换为 rgAvailReqTypes(2,5),并将其添加到文件末尾:
rgAvailReqTypes(1,FIELD_TEMPLATE)="Computer"
rgAvailReqTypes(1,FIELD_FRIENDLYNAME)="Computer"
rgAvailReqTypes(1,FIELD_OID)="1.3.6.1.5.5.7.3.1"
rgAvailReqTypes(1,FIELD_CSPLIST)=""
现在,当我浏览网站时,我会看到一个新的证书请求类型:计算机。但是,当我尝试在独立计算机上提交该请求时,我收到此错误:
Certificate Request Denied
The disposition message is "Denied by Policy Module 0x80094800, The request was for
a certificate template that is not supported by the Active Directory Certificate
Services policy: 1.3.6.1.5.5.7.3.1(Server Authentication). ".
如何从我的 ECA 向外部独立计算机颁发计算机证书?
如果有帮助,我正在尝试在独立计算机上使用该证书,以便在使用 SSL 的计算机上运行 WinRM 侦听器。
编辑:我所做的就是向 CA 申请一个“Web 服务器”证书,该证书已获批准。它自动安装到我的用户帐户存储中。从那里,我将证书导出到我的独立机器上,然后将其导入到我的本地计算机 -> 个人存储中。现在我有一个以我的独立计算机的 HOSTNAME 命名的证书,在主题属性中,它显示 CN = HOSTNAME,并且对于“预期目的”,它显示“服务器身份验证”。
然而,现在我明白了:
即使我本地计算机个人商店中有一个证书似乎满足所有这些要求。:(
答案1
我以前见过这种情况,我试图记住它是什么。您是否已验证您有权注册证书?右键单击“证书模板”并选择“管理”。找到计算机证书并转到“权限”选项卡。您必须添加每个人的注册权限,但因此您需要确保“颁发要求”选项卡下的 CA 管理员批准。
答案2
好吧,我已经回答了自己的问题。证书必须包含可导出的私钥,并且必须驻留在本地计算机存储中。为此,我必须将 Web 服务器模板复制为允许导出私钥的新模板。它还必须是“Server 2003”兼容模板,而不是 Server 2008 模板,否则它不会显示在您的 Certsrv 网页上。CA 上的 Certsrv 网页将在您的当前用户 > 个人存储中安装证书,但它在那里不起作用。您必须将其导出(带有私钥),然后将其导入到本地计算机 > 个人存储中。(不仅仅是单击和拖动,那也行不通。)
那时,也只有那时,我才最后能够执行
C:\Users\Administrator>winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="SERVER1";CertificateThumbprint="1d9256aea461788764cec1904463120f084292f8"}
没有错误。