我正在尝试在Adobe Flash Builder中使用一个HTTPS网络服务。
当我添加URL时出现此错误:
服务期间出错 内省。 WSDLException: faultCode = OTHER_ERROR:无法执行 解决导入的文件 “https://172.21.17.235:9443/testehttpsWeb/sca/testeIOExport1/WEB-INF/wsdl/testehttps_testeIOExport1.wsdl”: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException: 无法找到有效的认证 请求目标的路径
如何配置客户端以使用Web服务?
答案 0 :(得分:5)
我们将不得不向想出这个的人买冰淇淋!
解决方案是将证书不导入JKS信任库,而是导入cacarets文件,在我的情况下:
keytool -import -alias trusted1 -keystore“C:\ Program Files(x86)\ Adobe \ Adobe Flash Builder 4 \ jre \ lib \ security \ cacerts”-file c:\ somepath \ mycert.cer < /强>
在这种情况下,无需添加:
<强> -Djavax.net.ssl.trustStore = “C:\ somepath \ truststore.jks”强>
... FlashBuilder.ini上的
行导入的注释是DNS服务器必须能够按名称而不是IP来转换Web服务路径,因为在安装的证书中,CN提到Web服务服务器名称而不是IP
此致
答案 1 :(得分:3)
Flash Builder构建于Eclipse之上。 Eclipse是用Java编写的,这可能是导致问题的原因。 Java本身不信任任何SSL(它不支持开箱即用的根CA,也不支持任何证书)。您必须设置信任库以将SSL与Java一起使用。
在eclipse中,这意味着设置一个信任库并将其位置添加到eclipse.ini中。要设置信任库,首先在浏览器中浏览到要连接的SSL站点,然后保存证书(通常右键/左键单击锁定图标并按照步骤操作)。您需要使用Java JDK中的“keytool”来创建信任库,例如:
keytool -import -alias trusted1 -keystore c:\somepath\truststore.jks -file c:\somepath\mycert.cer
然后找到你的eclipse.ini(通常在你的Flex Builder或eclipse文件夹中)。加上这个:
-Djavax.net.ssl.trustStore="c:\somepath\truststore.jks"