IE 未在 TLS 相互身份验证中发送客户端证书

2024-04-21

我正在尝试与第三方 API 建立 TLS 相互身份验证。客户端证书配置良好,当我尝试通过 Chrome 访问端点 url 时,它工作正常(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.

So I logged the details to Wireshark, And this is how it looks enter image description here When I digged more in to details I can see that the client certificate was never sent on step 9(TLSv1.2 379 Certificate, Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message).

在步骤 10 中,这是我遇到的错误

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

更新:当我尝试通过代码访问相同的端点并检查 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 安全设置未设置为默认值”。我找到了一些可能适用于您的情况的信息here https://support.microsoft.com/en-us/help/2851628/internet-explorer-cannot-display-an-https-site-when-ssl-2-0-and-tls-1。基本上它表示如果启用了 SSL 2.0,IE 就无法成功使用 TLS 1.2。你能检查一下这个设置吗?

设置图片 https://i.stack.imgur.com/sojLQ.png

转到互联网选项 -> 高级。查找“使用 SSL 2.0”,我可能没有看到该选项,因为我使用的是更高版本的 windows/IE,其中 SSL 2.0 不是一个选项,但您可能有它,具体取决于您的版本正在使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IE 未在 TLS 相互身份验证中发送客户端证书 的相关文章

随机推荐