IE会提示输入客户端证书,但不会发送它

时间:2015-03-12 11:13:16

标签: internet-explorer client-certificates

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

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

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

提示之前:

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

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

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

Wireshark分析:

  • IE的截断响应显示:证书长度:0
  • 在IE的响应显示后,
  • :警报,致命,错误证书

该网站使用tomcat 7。

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

1 个答案:

答案 0 :(得分:2)

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