【问题标题】:IE prompts for client certificate but doesn't send itIE 提示输入客户端证书但不发送
【发布时间】:2015-03-12 22:16:32
【问题描述】:

我有一个要求客户使用客户证书对自己进行身份验证的 Intranet 网站。我为网站创建了一个自签名的服务器证书,信任它的客户端,并使用该证书创建了许多客户端证书。它在每个浏览器和 curl 和 wget 和 openssl s_client 中都运行良好,但在 IE 中不起作用(XP 中的 IE8 除外)。

IE 提示输入客户端证书,但实际上并不发送它。我正在使用 Wireshark 查看 IE 发送的内容,因为它提供给我的唯一错误消息是“无法显示此页面”。

该网站位于受信任的站点中。我在wireshark中看到的:

提示前:

  • TCP 连接已建立
  • 服务器发送其证书并请求客户端证书
  • 连接关闭

这会使 IE 显示证书提示。我选择证书:

  • TCP 连接建立
  • 服务器发送其证书并请求客户端证书
  • IE 开始发送内容,但在客户端证书名称显示之前结束消息。
  • 服务器发送一个 ACK​​ 和 7 个字节的内容,然后 TCP 关闭。

Wireshark 分析:

  • IE 的截断响应显示:证书长度:0
  • 在 IE 的响应显示:Alert、Fatal、Bad Certificate 之后

网站使用tomcat 7。

如果您需要更多信息,我会尽我所能提供更多信息。

【问题讨论】:

    标签: internet-explorer client-certificates


    【解决方案1】:

    最后我能够解决问题。 Chrome 和其他浏览器使用 TLSv1.0 进行通信,并将通信升级到 TLSv1.2(Wireshark 仅在 Client Hello 的第一个版本实例中显示了这一点)。 IE 使用 TLSv1.2 发起请求,并拒绝尝试降级协议版本。在我配置tomcat的server.xml也支持TLSv1.2之后,IE开始工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-07
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 2018-04-26
      • 2018-12-08
      • 1970-01-01
      相关资源
      最近更新 更多