3

我已经创建了用于使用 wsdl2java 使用 Web 服务的存根类,但我需要为传输指定客户端证书。我该怎么做呢?

在 .NET 中,我习惯于在调用之前直接将 X509Certificate 对象附加到类似的存根类。

4

1 回答 1

1

在 Java 中,您有几个选择:

  • 指定java.net.ssl*参数以设置证书存储、密码等。您将希望使用这些参数来设置keytool这些对象。

这是代码,或者可以在命令行中使用 -D 指定这些代码。请注意,这些对您的应用程序来说是全局的。

System.setProperty("javax.net.ssl.keyStore", "myKeyStore.p12");
System.setProperty("javax.net.ssl.keyStoreType", "pkcs12");
System.setProperty("javax.net.ssl.keyStorePassword", "password");
  • 创建一个自定义SSLFactory,在较低级别配置您的证书并将其设置在您的 WS 上下文中。你可以用谷歌搜索并找到很多信息。还要检查这个问题(作者说它是针对 JAX-RPC,但在评论中他将他的 impl 更改为 JAX-WS)。

您可以在JSSE 文档中找到更多信息(这适用于 java 1.5)。

于 2012-04-11T19:48:34.707 回答