我有一个Intranet网站,要求客户使用客户端证书对自己进行身份验证。我为网站创建了一个自签名服务器证书,并将其信任给客户,并且使用该证书创建了许多客户端证书。它适用于所有浏览器和curl和wget以及openssl s_client,但在IE中不起作用(除了XP中的IE8)。
IE提示输入客户端证书,但实际上并未发送。我正在使用Wireshark查看IE发送的内容,因为它提供给我的唯一错误消息是“此页面无法显示”。
该网站位于受信任的网站中。我在wireshark看到的内容:
提示之前:
这使IE显示证书提示。我选择证书:
Wireshark分析:
该网站使用tomcat 7。
如果您需要更多信息,我会尽我所能提供更多信息。
答案 0 :(得分:2)
最后我能够解决问题。 Chrome和其他浏览器使用TLSv1.0进行通信并将通信升级到TLSv1.2(Wireshark仅在Client Hello的第一个版本实例中显示了这一点)。 IE使用TLSv1.2发起了请求,并拒绝尝试降级协议版本。在我配置tomcat的server.xml以支持TLSv1.2后,IE开始工作。