如何模拟与HTTPS的连接并logging握手?

我有一个通过HTTP和HTTPS托pipe网站的IIS 6 Web服务器场。 使用Mac 4上的Safari 4,通过HTTPS连接,场中的某些节点触发浏览器向用户发出证书错误,其他节点正常工作。 总是相同的节点导致问题,但在IE或Chrome中似乎不会出现问题。

我认为农场中的这些节点configuration错误,但我无法通过查看单个服务器设置来轻松识别问题。 我想将客户端工具指向一个已知的好节点,并从客户端的angular度捕获SSL客户端和服务器hello,证书消息,密钥交换等,然后解密,然后在已知问题节点上重复,然后比较。

你可以请build议任何Windows工具,或者更好的方式来诊断故障?

我经常使用OpenSSL的s_client 。 我不明白为什么Win32版本不应该工作一样。

您可以使用以下命令对SSL握手进行非常详细的说明:

openssl s_client -debug -msg -state -status -showcerts -connect <host>:443 

如果你希望不那么健谈,那么你可以放弃一些论点。

您也可能希望使用您的唯一签名CA来指定-CAfile

文章HTTPS连接的第一个毫秒说明你在找什么。

看看fiddler2 – http://www.fiddler2.com

“Fiddler是一个Webdebugging代理,可以logging你的计算机和互联网之间的所有HTTP(S)stream量。Fiddler允许你检查所有的HTTP(S)stream量,设置断点,并且用input或输出数据”小提琴“。强大的基于事件的脚本子系统,并且可以使用任何.NET语言进行扩展。“

提琴手是一个伟大的通用networkingdebugging工具。 现在,为了您的目的,您可能需要将David的build议与连接到每个服务器的build议结合起来,从而能够从Fiddler中追踪正在发生的事情。 显然知道你连接的服务器是关键,这样你就可以确切地确定问题所在

农场如何configuration? 如果您可以看到服务器场的每个节点(即,您直接或通过VPN在同一networking上,或者它们具有面向公众的IP地址),是否可以不连接到每个节点并查看哪些节点存在证书问题?

对于每个节点:

  • 完全closures你的浏览器(如果它已经caching了与该名称相关的IP地址,我们将在下一步在本地更改该关联)
  • 通过在主机文件(在大多数Windowsconfiguration中为c:\ windows \ system32 \ drivers \ etc \ hosts)中添加一个条目,将其直接地址与您期望在证书上的(子)
  • 打开您的浏览器并转到该网站