我无法让某台 IIS 计算机“执行” SSL。这是一个测试环境(众多测试环境之一),我们已多次设置了“相同”的测试环境,但似乎不起作用。
服务器是Windows Server 2003(版本5.2(Build 3790.srv03_sp2_gdr.100216-1301:Service Pack 2))
IIS 托管 4 个站点(包括默认站点),但只有一个站点配置了 SSL。我们使用的 SSL 证书与所有其他服务器使用的证书相同(它是通配符证书)。
(不认为这相关,但无论如何包括)我们已将站点配置为需要 SSL,它有一个不需要 SSL 的子目录,但有一个重定向到 SSL 的 asp 页面。站点的 403;4 错误页面与此 asp 页面挂钩(这就是我们将非 HTTPS 转换为 HTTPS 的方式)。
使用 Microsoft Network Monitor (3.3),我刚刚针对 SSL 正在运行的服务器运行了一个会话。它可以将 SSL 交换分解为以下消息:
SSL: Client Hello
SSL: Server Hello. Certificate. Server Hello Done
SSL: Client Key Exchange. Change Cipher Spec. Encrypted Handshake Message.
SSL: Change Cipher Spec. Encrypted Handshake Message
但是,在我们的问题服务器上,我只看到:
SSL: Client Hello.
来自服务器的下一个数据包(来自端口 443,因此它在那里监听并响应)仅包含 60 个字节,并且似乎只有 Tcp 标头而没有其他内容(但我绝不是破译这些内容的专家)。
那么,我下一步该去哪里找呢?或者我需要为这个问题添加哪些其他信息,以及在哪里可以找到这些信息?
答案1
按照通常的方式,在写完这个问题之后,我们很快就找到了错误所在:
事实证明,该服务器的 SSL 证书副本存在问题(尽管在 IIS 管理器中一切显示正确,包括有关具有匹配私钥的消息)。无论在 IIS 中重新启动站点、通过 SSL 访问站点或取消分配/重新分配证书,事件日志中都不会出现任何消息。
我们必须删除该证书并从文件中重新导入。
我们怀疑该服务器可能在某个时候被克隆过,所以这可能与克隆过程有关。留下这些额外的信息作为答案,希望将来能帮助到其他人。