1

我在 prrduction 有两个 web 应用程序,比如 app1 和 app2。两者都在不同的网络服务器上。app1 是经过验证的安全信托公司,app2 是由 TrustWave Holdings,Inc 验证的。所以两者都是经过验证的 CA。App2 尝试将 HttpsURLConnection 设置为 app1 并获得一些 SSLException。我的问题是,如果两个证书都是经过验证的,我们还需要在 jre\lib\security 文件夹中创建任何证书条目吗?根据我的理解,如果证书经过​​验证,我们就不需要这个。任何指针都会有很大帮助。

编辑:-

我在jdk1.6上。我不确定这些证书(即安全信托公司和 TrustWave Holdings,Inc)是否已经存在于 jre\lib\security 下的 cacerts 文件中。我可以在网上找到这些包含在 mozzila 和其他浏览器中,但不确定 jdk 1.6?

4

2 回答 2

1

提供商需要付出一些努力才能将其根 CA 证书包含在所有浏览器、iphone、平板电脑和诸如此类的东西中。通常情况下,他们不会费心让他们的证书随 oracle 或 openjdk 一起提供。这就是我们从 Godaddy 转移到 Comodo 的确切原因......如果服务器证书未捆绑,您可以使用颁发者证书和您的证书创建一个密钥库,并告诉 java 通过命令行使用它:

-Djavax.net.ssl.trustStore=yourkeystorefile.jks -Djavax.net.ssl.keyStore=yourkeystorefile.jks

从技术上讲,您可以将服务器 cert+key 放在密钥库和从颁发者到信任库的证书链中,但是如果将两者混合在一个密钥库文件中,这对 java 来说很好

于 2012-06-27T12:36:56.617 回答
0

您可能需要将这些添加到 /security/cacerts。默认情况下,Java 确实信任某些证书颁发机构。我不确定 TrustWave 是其中之一。

使用以下命令查看密钥库并查看 TrustWave 是否在其中。

keytool -list -keystore /usr/java/jdk1.6.0_14/jre/lib/security/cacerts
于 2012-06-27T12:40:41.213 回答