IIS 6 SSL 证书问题 - 服务启动时出现 SSL 连接错误,但如果从 MMC 停止并继续访问网站则没问题

IIS 6 SSL 证书问题 - 服务启动时出现 SSL 连接错误,但如果从 MMC 停止并继续访问网站则没问题

我正在处理安装了 IIS 6 的旧版 win2k3 (sp2)。我遇到了一个非常奇怪的问题,让我抓狂不已。

  • 有 5 个网站配置在特定的网络服务器上运行。
  • 其中 3 个拥有可用的 SSL 证书(并且拥有自己的专用 IP,SSL 服务在 :443 上)
  • 其中一个网站存在以下问题:

首次启动 w3svc 服务时(通过重启或网络停止/启动),与该特定网站的 SSL 服务的初始连接会立即失败,并出现 ERR_SSL_PROTOCOL_ERROR。我将在下面提供进一步的诊断信息。

现在来看看完全令人困惑的症状和尝试的补救措施的列表:

  • 如果我单击 IIS MMC 中的“停止”图标,然后重新启动该网站(而不是 w3svc 服务本身),问题就会消失。
  • 如果我为网站分配 443 以外的 SSL 端口,则问题永远不会出现
  • 如果我为网站分配不同的 SSL 证书,问题仍然存在
  • 我创建了一个全新的网站来测试这个问题,但问题又出现了

我在事件管理器(应用程序、系统或安全)和 w3svc 日志文件中看不到相关的日志信息。

Filemon 没有显示任何我能看出的奇怪的东西(访问被拒绝或找不到任何类型的文件),无论如何,我怀疑证书实际上是从文件中获取的。

wget我已经使用这些工具运行了其他测试SSLDiag,所有测试都得出相同的结论,但没有任何真正的进一步诊断信息。

经过Wire Shark检查,发现连接已经断开:

  • 客户端向服务器发送 226 字节“Client Hello”数据包
  • 服务器立即向客户端发回一个 [FIN,ACK] 数据包

当使用上面概述的停止/启动方法“补救”服务器时,服务器会正​​常响应(不会发送此类 FIN/ACK 数据包)。

上述情况让我怀疑这是否是一种突然出现的页面错误,会在记录任何内容或完成任何操作之前立即终止线程。

我不知所措,我花了 8 个多小时来解决这个问题,但仍然找不到解决它的方法。如果有人真的知道发生了什么,我会很高兴,但实际上我只是希望得到一些关于如何进一步调试/检查以确定问题根源的想法。

注意:有些限制是我无法避免的,例如,重新安装服务器或升级服务器目前都不是选项。

答案1

好吧,我终于偶然发现了这个问题的解决方案,但是这个解决方案并没有让我理解这个错误是什么(我认为需要源代码,并且鉴于 Win2k3/IIS 6 不再受支持,我认为这样的尝试没有什么用)。但为了大家的利益,最好把这个写下来。

根据 Twisty 的建议,我开始思考问题的本质。我首先停止了服务器上除相关网站之外的所有网站,然后重新启动了 Web 服务。这没有任何作用。

然后,我查看了其他不活跃的网站(那些长期处于停止状态的网站),并检查它们是否存在任何可能的冲突。我注意到其中一个网站配置为使用此特定证书。但是,从该网站删除证书并不能解决问题。此外,还有其他不活跃的网站配置为使用其他证书,但这些其他证书没有显示此错误。

总结 -- 我最终采取了简单的删除弃用的网站的方法,看看是否有任何作用,而且这确实解决了这个问题。--

我不知道,也没有时间(而是我的客户)回去创建网站来探索完整的错误行为。但我假设它与不活跃网站上的证书有关。

希望这个漏洞永远不会再降临到其他人头上。

相关内容