我在生产中有两个and应用程序,比如app1和app2。两者都在不同的网络服务器上。app1被验证为安全信托公司,app2由TrustWave控股公司进行验证。因此,两者都是经过验证的CA‘. app1 2试图将HttpsURLConnection设置为app1,并获得一些SSLException。我的问题是,如果这两个证书都是验证的,那么还需要在jre\lib\security文件夹中输入证书吗?根据我的理解,如果证书是经过验证的,我们就不需要这个。任何指点都会有很大帮助。
编辑:-
我上的是jdk1.6。我不确定这些证书(即安全信任公司和TrustWave控股公司)是否已经存在于jre\lib\security下的仙人掌文件中。我可以在网上发现这些都包含在mozzila和其他浏览器中,但不确定JDK1.6?
发布于 2012-06-27 12:40:41
您可能需要将这些添加到/security/security中。默认情况下,Java确实信任某些证书颁发机构。我不确定TrustWave是其中之一。
使用以下命令查看密钥存储库,并查看其中是否有TrustWave。
keytool -list -keystore /usr/java/jdk1.6.0_14/jre/lib/security/cacerts发布于 2012-06-27 12:36:56
供应商需要付出一定的努力才能将其根CA证书包含在所有浏览器、iphones和平板电脑等中。通常情况下,他们都不会费心让自己的证书随oracle或openjdk一起发布。所以我们才从高爸爸搬到科莫多.如果服务器证书没有捆绑,您可以使用颁发者证书和您的证书创建密钥存储库,并通过命令行告诉java使用它:
-Djavax.net.ssl.trustStore=yourkeystorefile.jks -Djavax.net.ssl.keyStore=yourkeystorefile.jks
从技术上讲,您将把服务器cert+key放在密钥存储库和证书链中,从发行者到信任库,但是如果两者混合在一个密钥存储文件中,这对java来说是可以的。
https://stackoverflow.com/questions/11225924
复制相似问题