当证书有效时,Chrome不发送客户端证书

时间:2019-09-27 07:54:06

标签: ssl client-certificates mutual-authentication

我目睹了关于相互认证的怪异问题。 我在BigIP负载平衡器上设置了相互身份验证,以接受2个不同的CA。 这意味着我们仅接受由这两个CA颁发的证书。

我尝试使用OpenSSL向LB提供那些证书,并且通过我可以正常工作,这意味着我有2个证书,使用IE可以正常工作,使用FireFox也可以正常工作。但是当我使用chrome时,浏览器会要求提供证书,但它不会将证书发送到LB,因为它在wireshark中已被观察到(下图)

我可以同时使用这两个证书,所以我将证书和密钥都提取出来并使用了

openssl s_client -connect Host:port -cert "cert.pem" -key "key.pem"

它工作正常,我可以看到连接正常。

在IE中使用相同的证书,它也可以正常工作。 邮差也工作。 FireFox也可以。

Chrome,但是它显示的证书长度为0

Chrome Asking for certificate

Chrome not sending certificate

并且您可以看到OpenSSL使用了相同的证书并且该证书正在发送。

Enter image description here

任何想法可能是什么问题?

更新: 我从调试开始chrome,看到了这一点,看来chrome无法解析我的密钥或证书。

[14836:18604:0927 / 172254.921:ERROR:ssl_platform_key_util.cc(70)]无法解析公共密钥。 [17536:16164:0927 / 172255.100:ERROR:ssl_client_socket_impl.cc(941)]握手失败;返回-1,SSL错误代码1,net_error -117

1 个答案:

答案 0 :(得分:0)

对于我来说,证书中算法参数的ASN.1编码有问题。编码错过了NULL值。如果您上传证书,我们可以仔细检查。