我有一台装有 IIS7 的 Windows 2008 Server。每次服务器重新启动时,SSL 都会停止工作。
正常的 HTTP 请求可以正常工作,但对 HTTPS 地址的任何请求都会在浏览器中显示典型的错误消息:
找不到服务器或 DNS
我可以暂时修复此问题,方法是打开 IIS 管理器并打开相关网站的“绑定…”窗口。然后我选择“https”,单击“编辑”,然后单击“确定”,而不对设置进行任何更改。执行此操作后,浏览 https:// 即可再次正常工作,直到下次重新启动。
这个问题看起来很像所描述的问题这里,但根据证书MMC snapin,有问题的证书做有私钥。我还非常确定我从未在个人存储中安装证书,而是直接将其导入机器存储,但已经有一段时间了……
除了事件 ID 36870 之外,事件日志中没有太多内容,该事件也描述在我链接的帖子。
有人能帮助我解决这个问题,以便 SSL 在服务器重启后也能正常工作吗?
答案1
我还想到了在启动期间尝试绑定到 SSL 端口的服务。您是否有另一个 SSL 站点或服务器尝试侦听该端口?如果是,您可以暂时禁用该服务器或将站点切换到其他端口,看看这是否允许您的 SSL 站点启动?
答案2
您的证书是否需要/要求任何可能尚未安装的中间证书?现在有很多网站出售非根颁发机构的证书,GoDaddy 就是一个很好的例子。除了您的证书之外,您还必须安装他们的中间证书用于授权链。您是否已确认不需要这些证书和/或如果需要,则已安装这些证书?此外,您当前的绑定是如何配置的 - 您是否指定了 IP 和/或指定了主机名?如果没有,您是否尝试在绑定中指定其中一个或两个?这实际上更像是一种变通方法,而不是解决方案,但它可以澄清是否确实存在 squillman 所说的情况,如果它有效,也将证实您的陈述,即您的私钥/证书存储没有损坏。
答案3
这对我来说是一个解决方案:
从计算机存储中删除证书并重新导入。不要从用户存储中拖放它。
答案4
我刚刚在这里发布了我的解决方法,因为我们在 2016 年使用 IIS8 的 Windows 2012 Server 上仍然遇到同样的问题(!) https://serverfault.com/a/786098/362281 希望这有助于避免浪费太多时间!