Java v / s浏览器证书信任行为

时间:2019-09-07 09:34:25

标签: certificate

我们有一个基于Java的应用程序,可以通过https连接到几个服务器。

这些服务器的自签名证书已添加到客户端信任存储区,以确保https连接正常。

这是有问题的场景:

  1. 服务器具有带有公共密钥Pub1的自签名证书C1。该证书已添加到客户端信任存储中,并且连接正常。

  2. 在服务器说C2上生成一个新的自签名证书,该证书具有与C1相同的公钥。即C2具有不同的序列号,指纹,有效日期,但具有与证书C1相同的公钥。

  3. 尽管C2未添加到客户端信任存储中,但是客户端和服务器之间的连接仍在工作。

因此,看来X509TrustManager / X509ExtendedTrustManager checkServerTrusted实现仅在进行公钥匹配。

使用浏览器测试过的相同场景:

  1. 未将服务器的自签名证书C1添加到浏览器证书存储中时,浏览器将引发安全异常。对于Firefox(添加服务器例外)和Chrome浏览器(将自签名服务器证书添加到信任存储)。

  2. 浏览器现在不会引发任何安全异常。

  3. 如前所述,当服务器更改为具有与C1相同的公钥(已添加到浏览器)的证书C2时,浏览器仍会引发安全异常。

实际上,Java v / s浏览器信任行为有所不同。

0 个答案:

没有答案