我可以安全地假设被调用的服务器的证书是checkServerTrusted()数组中的第一个吗?

时间:2015-01-29 05:51:11

标签: java x509certificate

我尝试使用我在应用程序中的证书(比如在类文件夹中)来检查服务器证书{/ 1}}。

我正在点击X509TrustManager网站,因此当调用https方法时,方法会传递给X.509证书数组。

我可以安全地假设被调用的服务器的证书是数组中的第一个吗?

请注意,在checkServerTrusted()方法中,我必须验证服务器的证书。

以下代码如下:

checkServerTrusted()

仅使用第一个证书进行验证是否安全?

2 个答案:

答案 0 :(得分:1)

  

在checkServerTrusted()方法中,我必须验证服务器的证书。

这不是它在Javadoc中所说的。您必须从提供给受信任根的链中建立证书路径。

  

仅使用第一个证书进行验证是否安全?

没有

答案 1 :(得分:1)

  1. 不一定。我已经看到了最终实体证书,无人在Web服务器上配置的中间CA证书。 Java文档没有提到提供给您的内容会有任何顺序。您可以通过配置具有混乱的证书顺序的测试Web服务器进行测试,并查看此方法的参数中的顺序。这是一种方式。
  2. 您可以验证在有效性,主机名匹配等方面提供给您的证书,但另一个关键的事情是验证从最终实体证书到CA的中间CA(如果有)的证书链您信任,即在您信任的商店。