Chrome浏览器如何知道要提示网站的客户证书



我正在使用tomcat为项目设置证书身份验证。它适用于命令行客户端,例如curl。

我在Chrome浏览器中安装了许多客户端证书。有些用来连接到我的网站,其他用于不同的目的,而与我的项目无关。

每次我连接到网站时,Chrome都会列出选择客户证书的列表。这些正是我安装的证书,而不是其他证书。我的问题是:

  1. Chrome如何知道哪些客户证书是为了选择网站的?
  2. tomcat将这些客户证书存储在其信任商店中。期间SSL Hanshake,Tomcat将要求提供客户证书。可以请求在信任中知道的一些特定证书存储,以便镀铬知道该显示什么?

客户端证书身份验证是在浏览器实施的SSL/TLS协议的握手阶段所规定的。

  1. 如果服务器需要客户端证书身份验证(它是可选),将消息发送给客户,并以接受的列表证书机构(CA)。如果服务器接受任何证书。

  2. 客户端选择由这些CA发出的客户密钥库中安装的证书,然后将列表呈现给用户。如果是Chrome,浏览器选择用户从操作系统的密钥存储中安装的证书。

  3. 用户选择证书,客户在握手期间通过互换的已知数据执行签名。

只能在步骤2期间选择带有私钥的证书。这是浏览器的原因,没有选择设备中安装的可信CA的证书。您不拥有私钥

最新更新