我对web services
完全陌生。我搭售通过SSL
连接进行连接。我跟着这个网站:SSLHandshakeException: PKIX: unable to find valid certification path to requested target,这个线程How to solve javax.net.ssl.SSLHandshakeException Error?和我没有添加certificate
到keystore
如下:尝试通过SSL进行连接时出错。无法找到要求的目标的有效认证路径
keytool -importcert -alias <some name> -file <Certifacate path> -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
和我检查是存在使用keytool -list
命令
的问题是,我得到这个当我试图通过SSL
在应用程序连接错误消息:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我也试图添加trustStore
位置和密码在应用程序如下:
System.setProperty("javax.net.ssl.trustStore","C:\\Program Files (x86)\\Java\\jre7\\lib\\security\\cacerts");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
但仍然有同样的错误。
我正在使用Jdeveloper 11g R1
和JDK 7
,如果这是帮助。
更新:
经过进一步阅读一些解决方案,说我需要让这个路径:
C:\Program Files\Java\jdk1.7.0_09\jre\lib\security\cacerts
由于truststore
我更换上面的Java语句如下:
System.setProperty("javax.net.ssl.trustStore","C:\\Program Files\\Java\\jdk1.7.0_09\\jre\\lib\\security\\cacerts");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
但我仍然得到相同的错误!
可能重复[获取错误:PKIX路径构建失败:无法找到有效的证书路径到请求的目标](http://stackoverflow.com/questions/17388279/getting-error-pkix-path-building-failed-unable-to-find-有效认证-pat) –
@WarrenDew我已经这样做了,正如我在问题 – Salman
中所描述的那样将javax.net.ssl.trustStore设置为JRE默认值是alre ady默认情况下发生。你根本不需要这样做。只要您将证书导入到正确的cacerts文件中,并通知keytool将其作为CA证书进行信任,它就可以工作。 – EJP