我正在照顾安装了IIS 6的传统win2k3(sp2)。 我有一个非常奇怪的问题,让我把头发拉出来。
当w3svc服务首次启动时(通过重启或networking停止/启动),到该特定网站的SSL服务的初始连接立即失败,并返回ERR_SSL_PROTOCOL_ERROR。 我将在下面提供进一步的诊断信息。
现在列出完全莫名其妙的症状和尝试的补救措施:
我可以在事件pipe理器(应用程序,系统或安全)和w3svc日志文件中看到没有相关的日志信息。
Filemon不显示任何奇怪的东西,我可以告诉(访问被拒绝或文件没有find任何types),无论我怀疑证书实际上是从文件中获取。
我已经使用wget和SSLDiag工具进行了其他testing,所有这些工具都提供了更多相同的信息,而没有任何实际的进一步的诊断信息。
线鲨鱼检查显示连接简单地被丢弃:
当服务器使用上述停止/启动方法“补救”时,服务器响应正常(不发送这种FIN / ACK数据包)。
以上让我想知道是否突然出现页面错误,在任何日志logging或任何事情完成之前立即终止线程。
我不知所措,我花了8个多小时来处理这个bug,但仍然找不到解决的办法。 如果有人真的知道发生了什么,我会很喜欢它,但我实际上只是希望得到一些关于如何进一步debugging/检查以确定问题根源的想法。
注意:有一些我无法避免的限制,比如重装服务器或升级服务器目前不是选项。
好的,所以我终于find了解决这个问题的办法,但是这个解决scheme让我不明白这个bug是什么(我认为源代码是需要的,而且不再支持Win2k3 / IIS6,没有看到在这样的风险公用事业)。 但为了共同的利益,最好把它写下来。
在Twisty的build议下,我开始思考问题的本质。 我首先停止了服务器上的所有网站,然后重新启动web服务。 这没有做什么。
然后,我查看了其他非活动网站(那些长时间处于停止状态的网站),并检查是否有任何可能的冲突。 我注意到其中一个被configuration为使用这个特定的证书。 但是,从该网站删除证书并不能解决问题。 此外,还有其他非活动网站被configuration为使用其他证书,但这些其他证书不显示此错误。
TL; DR – 我终于采取了简单的方式删除已弃用的网站,看看是否会做任何事情,这确实解决了这个问题。 –
我不知道,也没有时间(而是我的客户)回去创build网站来探索完整的错误行为。 但是我认为它与非活动网站上的证书有关。
希望这个bug永远不会落在那里。