我正在使用https连接到https服务器。
具体而言,我使用apache httpclient,并配置ssl上下文以使用我的密钥库和信任库。
我使用的https服务器是IIS7,并且配置为需要客户端身份验证。
我想我已经正确设置了它。
无论如何,如果我将一个密钥库(即客户端证书)的httpClent的ssl上下文配置为对IIS有效,那么连接就没有问题。现在关于ssl握手和java行为的问题
我的问题是这样的: 如果我做不配置与任何客户端证书的SSL上下文发送给IIS,没有与服务器连接。是什么让我觉得,是因为我希望在代码中看到由于hanshake失败警报而导致的一些java异常。
监测wireshark发生了什么,我看不到从IIS到我的应用程序的证书请求,但我注意到ServerHelloDone后,所有内容都被加密了。
我没想到。我认为握手通常是明文的。
我用私人密钥来解密跟踪,我看到了来自IIS的证书请求,但在多次启动和打开新连接之后。
我的应用程序将长度为0的证书作为响应发送回来,IIS回复TLSv1 完成。
之后,数据包停止(即似乎通信结束)。
我期待握手警报。
我的问题是,这是应该如何工作,或者至少IIS如何工作?
或者如果我没有看到警报,我的用例有什么问题?
感谢
我认为你说的话对IIS有意义。我不确定TLSv1 Finished消息是什么。它似乎用于关闭ssl连接而不是提示 – Cratylus 2011-05-21 18:32:25
然后重新握手,也就是下面Bruno的回答中的重新协商,被加密。 – 2011-05-27 01:46:56