IE不在TLS相互认证中发送客户端证书

我正在尝试与第三方API建立TLS相互认证。 客户端证书配置良好,当我尝试通过Chrome访问终点网址时,它工作正常(Chrome会在消息框中确认证书,当我这样做时,页面会显示其内容)。

同样的事情,当我试图用IE浏览器它不工作,并显示此消息

Cannot securely connect to this page

This might be because the site uses outdated or unsafe TLS security settings. If this keeps happening, try contacting the website’s owner.

Your TLS security settings aren’t set to the defaults, which could also be causing this error.

所以我将这些细节记录在Wireshark上,这就是它的外观 在这里输入图像描述 当我深入细节时,可以看到客户端证书从未在步骤9(TLSv1.2 379证书,客户端密钥交换,更改密码规范,加密握手消息)上发送。

在第10步中,这是我得到的错误

在这里输入图像描述

这种行为背后的原因是什么?

更新:当我尝试通过代码访问smae终点并检查SChannel日志时,我可以看到这样的警告

The remote server has requested TLS client authentication, but no
suitable client certificate could be found. An anonymous connection
will be attempted. This TLS connection request may succeed or fail,
depending on the server's policy settings.

看到它如何在chrome中工作,但不是IE我认为可以安全地说这个问题是IE特定的。 由于您已经添加了证书,因此听起来证书正在自动选择,但未发送。 您的错误中还会显示一条消息,指出“您的TLS安全设置未设置为默认值”。 我发现了一些可能适用于您的场景的信息。 基本上它说如果启用了SSL 2.0,IE不能成功使用TLS 1.2。 你能检查这个设置吗?

设置图片

转到互联网选项 - >提前。 寻找“使用SSL 2.0”我没有看到我的想法,因为我使用的Windows / IE的更高版本,其中SSL 2.0不是一个选项,但你可能有它,取决于你的版本正在使用。


我遇到了一个类似的问题,证书有一个破损的证书恢复列表(crl)

在这里输入图像描述

我可以用Fiddler来追踪这件事,Fiddler向失败的CRL发出了一个请求。 你应该看到WireShark一样。 此外,使用Fiddler解密SSL流量时,没有问题,因为Fiddler然后使用自己的自签名证书与浏览器通信。

我不确定这会对您的情况产生什么影响,因为这可能是客户端证书的问题。

对于临时(不安全!)解决方法,您可以禁用clr检查。 如果这解决了问题,那么crl确实是个问题,你需要以某种方式请求一个没有错误crl的正确证书。

在这里输入图像描述

链接地址: http://www.djcxy.com/p/41369.html

上一篇: IE is not sending Client certificate in TLS mutual authentication

下一篇: Can I run ECMAScript 6 from Java 9 Nashorn engine