在Flex 4中使用HTTPS Web服务

时间:2011-04-08 17:32:15

标签: flex web-services soap ssl https

我正在尝试在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服务?

2 个答案:

答案 0 :(得分:5)

我们将不得不向想出这个的人买冰淇淋!

解决方案是将证书不导入JKS信任库,而是导入cacarets文件,在我的情况下:

keytool -import -alias trusted1 -keystore“C:\ Program Files(x86)\ Adob​​e \ Adob​​e 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"