我正在分布式应用程序中的服务器上工作,该应用程序具有浏览器客户端,并且还参与了与第三方的服务器到服务器通信。 我的服务器有一个CA签名证书,可让我的客户端使用HTTP/S和XMPP(安全)使用TLS(SSL)通信进行连接。这一切工作正常。如何以编程方式设置JAX-WS客户端的SSLContext?
现在我需要通过HTTPS/SSL使用JAX-WS安全地连接到第三方服务器。在此通信中,我的服务器充当JAX-WS interation中的客户端,并且我拥有由第三方签署的客户端证书。
我尝试通过标准系统配置(-Djavax.net.ssl.keyStore=xyz
)添加新的密钥库,但我的其他组件明显受此影响。尽管我的其他组件使用专用参数进行SSL配置(my.xmpp.keystore=xxx, my.xmpp.truststore=xxy, ...
),但它们似乎最终使用全局SSLContext
。 (配置命名空间my.xmpp.
似乎表明分离,但情况并非如此)
我也尝试将我的客户端证书添加到我的原始密钥库中,但是 - 我的其他组件似乎并不喜欢它。
我认为我唯一的选择就是以编程方式挂钩到JAX-WS HTTPS配置中,为客户端JAX-WS交互设置密钥库和信任库。
关于如何做到这一点的任何想法/指针?我找到的所有信息都使用javax.net.ssl.keyStore
方法,或者设置全局SSLContext
,我猜 - 最终会以相同的方式结束。最近我得到了一些有用的东西是这个旧的bug报告,请求我需要的功能:Add support for passing an SSLContext to the JAX-WS client runtime
任何需要?
错误报告说2.1.1版中将提供修复程序。 – EJP
@EJP该错误报告是一个功能请求,并没有提及它应该/将如何完成。 – maasg