SocketException连接到远程服务器时,默认SSL上下文为null

时间:2014-05-05 13:09:46

标签: java web-services ssl certificate

尝试连接远程服务器时,我面临以下SSL连接exception

java.net.SocketException: Default SSL context init failed: null 

大多数帖子都表明包含keystore文件的certificate位置存在问题。

其他人喜欢这篇帖子:Default SSL context init failed: null建议自己创建SSL Context。但是,问题还没有解决。

以下是我到目前为止所做的事情:

我尝试将certificate添加到以下文件位置,所有这些都给了我前面提到的相同错误:

Cacerts中的Java Home文件。

•我正在使用的cacerts的默认IDE位置(JDveloper 10.1.3.2),就我而言:C:\JDeveloper\WorkSpace_10g\jdevstudio10132\jdk\jre\lib\security\cacerts

•仅包含此keystore的新certificate

使用certificated小程序添加Portecle(我还尝试了keytool中的Command prompts个选项)

我还在代码中指代trustStorekeyStore,如下所示:

System.setProperty("javax.net.ssl.trustStore", trustStore file path goes here);
System.setProperty("javax.net.ssl.trustStorePassword", password goes here);

System.setProperty("javax.net.ssl.keyStore", keyStore file path goes here);
System.setProperty("javax.net.ssl.keyStorePassword", password goes here);

在上面的代码中,file path引用了前面提到的cacerts文件(Java home,默认JDeveloper cacerts和新创建的keystore当然我分别尝试了每一个。

1 个答案:

答案 0 :(得分:1)

找不到密钥库。检查您是否可以使用javax.net.ssl.keyStore.

中使用的相同名称在同一段代码中打开该文件

如果您使用的是默认cacerts,则根本不需要设置javax.net.ssl.trustStore/trustStorePassword