gpt4 book ai didi

java - 关于java中ssl握手和行为的问题

转载 作者:行者123 更新时间:2023-11-30 11:53:47 25 4
gpt4 key购买 nike

我正在使用 https 连接到 https 服务器。
具体来说,我使用的是 apache httpclient,我将 ssl 上下文配置为使用我的 keystore 和信任库。
我使用的 https 服务器是 IIS7,并配置为需要客户端身份验证。
我想我已经正确设置了它。
无论如何,如果我使用对 IIS 有效的 keystore (即客户端证书)配置 httpClent 的 ssl 上下文,那么连接就没有问题。

现在我的问题如下:如果我使用要发送到 IIS 的任何客户端证书配置 ssl 上下文,则不会与服务器建立连接。不过,让我想到的是,由于 hanshake 失败警报,我期望在代码中看到一些 Java 异常。
监视 wireshark 发生的情况,我看不到 IIS 向我的应用程序发出的证书请求,但我注意到在 ServerHelloDone 之后所有内容都已加密。
我原本没想到。我认为握手通常是明文的。
我使用私钥解密痕迹,我看到了来自 IIS 的证书请求,但在多次启动和打开新连接之后。
我的应用发回长度为 0 的证书作为响应,IIS 回复 TLSv1 Finished
之后数据包停止(即似乎通信结束)。
我期待握手警报。

我的问题是,这是它应该如何工作或者至少 IIS 是如何工作的?
或者,如果我没有看到警报,我的用例有问题吗?

谢谢

最佳答案

听起来 IIS 只需要某些 URL(例如 example.com/foo,而不是 example.com/bar)的客户端证书。

在最初的握手中,它并不知道你请求的是哪个url,所以它不需要证书。当它发现您正在请求受限资源 (/foo) 时,它会重新握手,要求提供证书。

但是,我仍然希望发生 handshake_failure。

关于java - 关于java中ssl握手和行为的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6080792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com