Spring 4.x的信任店问题

时间:2018-08-15 21:40:21

标签: spring ssl soap apache-httpclient-4.x spring-ws

我目前正在使用Spring-ws处理spring项目,其中我正在使用HTTP客户端连接到配置有SSL的远程Web服务。第一步,我使用keytool实用程序导入了由提供给JAVA信任库的服务提供的公共证书(X509)。

我使用以下代码为http客户端配置了SSL上下文:

final SSLContext sslContext = SSLContextBuilder.create()                
    .loadKeyMaterial(keyStoreFile, keyPassword.toCharArray(), keyPassword.toCharArray())
    .loadTrustMaterial(trustStoreFile, trustStorePassword.toCharArray()).build();

使用此配置,我得到以下错误:

sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

但是,如果我使用以下JVM参数来设置SSL参数,则它可以成功连接到Web服务。

-Djavax.net.ssl.keyStore
-Djavax.net.ssl.keyStorePassword
-Djavax.net.ssl.trustStore
-Djavax.net.ssl.trustStorePassword

还有一点,我需要将其导入JAVA lib安全文件夹下吗,它有什么含义吗?有时我们无权安装文件夹。

keytool import -keystore $JAVA_HOME/jre/lib/security/cacerts ...??

任何指向此的指针都将受到高度赞赏。

0 个答案:

没有答案