我正在尝试使用 SSL 证书来保护我们 Active Directory 上的 LDAPS,按照 Microsoft 网站上的说明进行操作http://support.microsoft.com/kb/321051
我以域管理员身份登录到要存储证书的机器上。我创建请求并提交给我们的 CA。然后他们返回证书。然后我将证书导入 Active Directory 域服务 NTDS\Personal Store。证书导入并可见。但是无法通过 SSL 连接到 LDAP。调查显示,导入时私钥尚未与证书关联。
域控制器已重新启动,这导致系统日志中出现以下错误。事件 36869 Schannel SSL 服务器凭据的证书没有附加私钥信息属性。这通常发生在证书备份不正确然后恢复时。此消息也可能表示证书注册失败。
显然,由于这是一个新密钥,因此不存在备份问题。
有人知道我该怎么做才能让私钥与证书关联吗?我已经两次完成了这个过程,撤销了原始证书。我总是以域管理员身份登录。
非常感谢。
答案1
返回的证书必须用于完成证书请求,而不仅仅是导入到商店中。
请参阅该 KB 中的步骤 5:
certreq -accept certnew.cer
这会自动将证书放入存储中,不需要手动导入。
此外,它应该位于计算机的个人存储中,而不是服务的存储中。
答案2
certutil 会将其放在机器存储中。您可以在 MMC 中打开两个存储,并将颁发给机器存储的证书复制到 ADDS 服务存储,这样它就拥有了私钥。
答案3
因为我没有找到 RichardP 描述的问题的解决方案,尽管这个线程很旧,但我还是会添加自己的发现:解决方案 - 或者至少是部分解决方案 - 似乎是遵循上述 MS-Knowledgebase 中的这个特定段落文章从字面上看(除了文件的名称,这些似乎并不重要),我引用:
检索颁发的证书,然后将证书保存为
Certnew.cer
与请求文件相同的文件夹。为此,请按照下列步骤操作:
- 创建一个名为
Certnew.cer
- 在记事本中打开该文件,将编码的证书粘贴到文件中,然后保存该文件。
总之我成功导入了证书和通过将 Linux 系统上签名的证书内容粘贴到 DC 上新创建的文件中来获取关联的私钥。
我没有探究这两个文件之间的区别——可能只是 CRLF 行终止符。