IIS 6 SSL证书问题 – 服务启动时出现SSL连接错误,但是如果停止并从MMC中移除网站,则可以

我正在照顾安装了IIS 6的传统win2k3(sp2)。 我有一个非常奇怪的问题,让我把头发拉出来。

  • 有5个网站被configuration为在特定的networking服务器上运行。
  • 其中3个具有SSLfunction的证书(以及自己专用的IP,SSL服务于:443)
  • 其中一个网站有以下问题:

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

现在列出完全莫名其妙的症状和尝试的补救措施:

  • 如果我单击IIS中的“停止”图标,然后开始备份该网站(而不是w3svc服务本身),问题就会消失。
  • 如果我将443以外的SSL端口分配给网站,问题就不会出现
  • 如果我为网站分配不同的SSL证书,问题依然存在
  • 我从头开始创build一个全新的网站来testing这个问题,问题再次出现

我可以在事件pipe理器(应用程序,系统或安全)和w3svc日志文件中看到没有相关的日志信息。

Filemon不显示任何奇怪的东西,我可以告诉(访问被拒绝或文件没有find任何types),无论我怀疑证书实际上是从文件中获取。

我已经使用wgetSSLDiag工具进行了其他testing,所有这些工具都提供了更多相同的信息,而没有任何实际的进一步的诊断信息。

线鲨鱼检查显示连接简单地被丢弃:

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

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

以上让我想知道是否突然出现页面错误,在任何日志logging或任​​何事情完成之前立即终止线程。

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

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

好的,所以我终于find了解决这个问题的办法,但是这个解决scheme让我不明白这个bug是什么(我认为源代码是需要的,而且不再支持Win2k3 / IIS6,没有看到在这样的风险公用事业)。 但为了共同的利益,最好把它写下来。

在Twisty的build议下,我开始思考问题的本质。 我首先停止了服务器上的所有网站,然后重新启动web服务。 这没有做什么。

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

TL; DR – 我终于采取了简单的方式删除已弃用的网站,看看是否会做任何事情,这确实解决了这个问题。

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

希望这个bug永远不会落在那里。