Chrome 显示用于客户端身份验证的可用证书的标准是什么

msh*_*hwf 7 browser google-chrome authentication certificate ssl

当远程服务器需要客户端证书进行身份验证时,浏览器会弹出一个对话框以从中选择证书:

在此输入图像描述

它只显示证书的子集,我想知道它根据哪些标准获取它们,例如,我希望这些证书必须具有关联的私钥来证明客户端的所有权。但 Chrome 证书管理器拥有的证书比弹出窗口中显示的证书多得多,其中一些证书具有关联的私钥。浏览器也有自己的独立存储,因为我注意到一些证书需要导入到浏览器存储中,尽管浏览器存储中的证书与 Windows 上的证书相同。

Rob*_*ert 6

HTTPS 客户端证书始终必须有相应的私钥,否则无法用于 HTTPS 客户端身份验证。

在 Windows 上(屏幕截图看起来像是在 Windows 上拍摄的)Chrome 确实使用了 Windows 证书管理器。用于 HTTPS 身份验证的证书存储在个人证书存储中(参考资料中的“个人”部分certmgr.msc)。

此外,您尝试连接的 HTTPS 服务器可以在其Certificate Request消息中发送它将接受客户端证书身份验证的 CA 列表:

引用自rfc5246

certificate_authorities:可接受的证书颁发机构的专有名称 [X501] 列表,以 DER 编码格式表示。这些专有名称可以为根 CA 或从属 CA 指定所需的专有名称;因此,该消息可用于描述已知的根以及所需的授权空间。如果certificate_authorities列表为空,那么客户端可以发送适当ClientCertificateType的任何证书,除非有一些相反的外部安排。