0

问题说明:

我正在尝试从 Windows 笔记本电脑连接到 TLS 1.0 到 Windows IIS 服务器。我们在 IIS 上设置了相互身份验证。

请参阅下面的握手电话:

在此处输入图像描述

所以它从第 4 帧的客户端问候开始。然后在接下来的步骤中,服务器发送它的证书并协商密码。然后在第 12 帧,握手似乎完成了。在第 13 帧,客户端开始发送应用程序数据。

但是在第 14 帧,Server 再次发送了一个 hello,我们看到了第二次握手。请您回答我的以下问题。

问题>> 在相互认证中,客户端请求服务器证书。然后服务器请求客户端证书。当他们双方都验证了对方的证书时,客户端开始发送应用程序数据。这不是相互认证的正常过程吗?

问题>> 在第 13 帧,客户端已经开始共享应用程序数据。那么为什么 IIS 要求在第 21 帧进行第二次握手呢?

问题>> 似乎第二次握手是为了获取客户端证书(第 24 帧)。但是服务器不应该在第 13 帧之前要求客户端证书。

如果您同意此 IIS 行为是错误的,请您建议如何解决此问题。

提前致谢。

4

1 回答 1

0

如果服务器不需要对所有资源进行相互身份验证,而仅在访问特定资源时,就会发生这种情况。因此:

  • 没有客户端证书的初始握手完成(帧 4..12)。
  • 客户端发送 HTTP 请求(第 13 帧)。
  • 根据请求,服务器意识到客户端喜欢访问需要相互身份验证的资源。因此,服务器使用 Hello 请求(第 14 帧)请求新的握手。
  • 新的握手完成,这次是客户端证书(帧 15..25)。
  • 服务器在客户端身份验证成功后发送 HTTP 响应(第 26,29 帧)。
于 2017-10-04T09:18:13.220 回答