Java等同于.NET System.Net.ServicePointManager

时间:2009-05-28 17:50:27

标签: java web-services

我想告诉一个java客户端请求不关心远程服务器自己创建的SSL证书。在.NET中,我可以通过操作ServicePointManager来完成此操作。我怎样才能在Java中做同样的事情?

1 个答案:

答案 0 :(得分:0)

我们需要知道您正在使用的SOAP / WS堆栈,因为它的底层实现会影响SSL的处理方式。在大多数情况下,堆栈将使用JVM范围内的JSSE设置,但是您对JSSE配置的控制程度各不相同。

如果这是生产,您应该考虑设置适当的PKI并信任客户端JVM中的CA.如果这是用于测试,则应对测试环境执行相同操作,并仍使用受信任的CA配置JVM。

要在JVM中配置信任,请参阅JSSE documentation以获取您的Java版本。

要创建用于JSSE设置的JKS文件,请参阅keytool documentaion以获取您的Java版本。

如果关键工具看起来令人生畏,Google上有免费的图形用户界面。

如果您不能或不想正确设置信任,则可以配置JSSE类的自定义实现以忽略信任。有关不执行任何操作的TrustManager的代码示例,请参阅this article。您需要将此TrustManager配置为JVM的默认信任管理器,因为您的SOAP / WS堆栈可能不允许您进行每个连接控制。