我在prrduction有两个webapplication说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?
答案 0 :(得分:1)
提供商需要花费一些精力才能将其根CA证书包含在所有浏览器,iphone和平板电脑等等中。他们通常不会因为使用oracle或openjdk运送他们的证书而烦恼。这就是为什么我们从Godaddy转移到Comodo的确切原因...如果服务器证书没有捆绑,你可以创建一个带有颁发者证书和你的证书的密钥库,并告诉java通过命令行使用它: / p>
-Djavax.net.ssl.trustStore = yourkeystorefile.jks -Djavax.net.ssl.keyStore = yourkeystorefile.jks
从技术上讲,你会将服务器cert + key放在密钥库和证书链中,从发行者到信任库,但如果两者混合在一个密钥库文件中,那么它对java来说没问题
答案 1 :(得分:0)
您可能需要将这些添加到/ security / cacerts。默认情况下,Java会信任某些证书颁发机构我不确定TrustWave是否是其中之一。
使用以下命令查看密钥库,并查看TrustWave是否在那里。
keytool -list -keystore /usr/java/jdk1.6.0_14/jre/lib/security/cacerts