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