![IIS8 集中证书无法识别证书(“指定的私钥密码不正确。”)](https://linux22.com/image/677556/IIS8%20%E9%9B%86%E4%B8%AD%E8%AF%81%E4%B9%A6%E6%97%A0%E6%B3%95%E8%AF%86%E5%88%AB%E8%AF%81%E4%B9%A6%EF%BC%88%E2%80%9C%E6%8C%87%E5%AE%9A%E7%9A%84%E7%A7%81%E9%92%A5%E5%AF%86%E7%A0%81%E4%B8%8D%E6%AD%A3%E7%A1%AE%E3%80%82%E2%80%9D%EF%BC%89.png)
我有一个非常简单的设置:Windows Server 2012 R2 上的 IIS 8 2x 带有 NLB 的 ARR 服务器 3x Web 内容服务器(位于 Web 场中)
ARR 服务器具有 IIS 共享配置,IIS Web 内容服务器具有共享配置。我能够通过 HTTP 成功浏览指向我的 ARR NLB IP 的域并访问 Web 场中的 Web 服务器。
我的问题是,当我将证书添加到 CCS 共享时,它们会显示一个红色的 X 和错误“指定的私钥密码不正确。”。我在 CCS 功能设置中没有指定密钥密码,并且我生成了一个未加密的 CSR 和密钥,以便从有效的 CA 颁发这些测试证书。
CSR 和密钥都是通过自定义内部 SSL 实用程序生成的,该实用程序仅使用 OpenSSL。我通过 sslshopper.com 上的一些验证工具运行了证书和密钥,它们验证了匹配,并且密钥可以读取,因为它未加密。
我使用 OpenSSL 和我的未加密密钥以及 CA 颁发的证书生成了 PKCS#12 (.pfx) 文件。我能够将生成的 PFX 导入到本地计算机上的证书存储中,查看它,并将其全部导出,没有任何问题。我注意到一件奇怪的事情是,当我从计算机上的个人证书存储中导出带有密钥的证书并将其添加到 CCS 时,错误是文件系统找不到指定的文件,即使它显示位于共享中的证书有错误。
任何帮助都将不胜感激。
答案1
关于您所看到的响应问题the file system could not find the file specified
,我们也遇到过类似的问题。
我们的证书管理器始终使用 Linux/OpenSSL 创建 PFX 文件,而输出文件缺少 OpenSSL 不关心的标头信息。我们的解决方法是将证书导入CertMgr.msc
Windows,然后将其重新导出到新的 PFX;一旦导入 CCS,一切就都正常了。
答案2
我今天在 IIS Windows Server 2016 上遇到了同样的错误。经过一番搜索,我找到了答案。使用 IIS 管理器 GUI 和集中式证书存储时,似乎存在模拟问题。我使用普通域管理员帐户登录,但已将证书存储网络共享配置为以其他帐户(具有足够权限)安装。我将所有内容更改为管理员,以管理员身份登录,一切正常。显然,这只是 GUI 的问题,但在这种情况下,它非常具有误导性。有关更多信息,请参阅此线程:https://github.com/ridercz/AutoACME/issues/14
答案3
即使尝试 SmithPlatts 的建议,我仍然无法让 CCS 认可该证书。
我最终从 IIS 生成了一个请求,使用 CA 提供的证书完成该请求,然后使用 certmgr 的密钥导出该证书。我采用了 PFX,CCS 认为它没有问题。
我不知道问题到底是什么,我怀疑它与 SmithPlatts 的帖子类似,但不确定。我计划制作一些 PowerShell 脚本来管理此过程,虽然不理想,但它有效。