https上的Web服务调用

时间:2011-03-01 00:25:59

标签: browser service certificate

从我的网络应用程序,我必须将一些数据发布到https上的远程第三方Web服务。 Web应用程序的用户已获得单独的证书以连接到Web服务。 Web应用程序将作为最终用户和Web服务之间的中介,因为应用程序具有要发布的所有数据。怎么能实现呢?可以从Web应用程序启动的Applet或Java Web Start。你们可以抛光吗?等待你的想法,建议。

三江源

1 个答案:

答案 0 :(得分:0)

Web服务提供商是否在与Web应用程序不同的计算机上运行?

如果没有,您可以直接教Web应用程序以公开处理用户请求所需的Web服务。您可以使用WS-Security协议之一来相互验证客户端和服务器。

如果是,Web服务提供商是否在Web应用程序可以看到的专用网络上运行?

如果是,您可以在用户通过SSL与Web应用程序进行相互身份验证后直接从Web应用程序使用Web服务,并将使用的数据发送给用户。

如果没有,请使用SSL在Web应用程序上相互验证用户;从Web应用程序中,使用服务器证书通过WS-Security协议之一与Web服务提供商进行相互进一步的静默。

修改

要使用自签名证书,请让applet在密钥库中导入该证书,可以是JRE默认密钥库,也可以是在运行时加载的自定义密钥库(更确切地说,用于信任证书的密钥库称为TrustStore)。 / p>

您可以使用Oracle提供的 keytool 可执行文件创建密钥库。一旦您教您的applet使用该密钥库,您的applet就会信任该自签名服务器证书。

将应用程序TrustStore设置为:

System.setProperty("javax.net.ssl.trustStore","path/to/clientTrustStore.key");
System.setProperty("javax.net.ssl.trustStorePassword","keystore-password-if-any");

阅读this link以获取有关javax.net.ssl.trustStore属性的更多信息。