gpt4 book ai didi

ssl - 如何为 javax.xml.ws.Service 配置 SSL 套接字?

转载 作者:太空宇宙 更新时间:2023-11-03 13:18:55 24 4
gpt4 key购买 nike

我有一个 tomcat 应用程序调用启用了 IIS 托管的 ssl,启用了客户端身份验证的 Web 服务

这个 Tomcat 应用程序与多个 wenservices 对话,可能每个都需要客户端身份验证和 PKI 身份验证。

对于 IIS Web 服务,wsdl url 可以更改,因此我使用

javax.xml.ws.Service(url,qname) 构造器通过传递 wsdl 的 url ...

问题是我需要使用带有自定义客户端 key 的 SSL 来调用上面的内容。如何告诉上面的构造函数使用我用自定义 KeyManager 创建的 sslsocket ?我不想用HttpsURLConnection.setDefaultSSLSocketFactory 因为这将强制其他传出 ssl 连接遵循我的 keymanager,这是 IIS web 服务独有的。感谢您的回复。

最佳答案

如果您遵循 your similar question on ServerFault 的答案并确保 Tomcat 的 <Connectors />不要使用 javax.net.ssl属性,为默认 key 管理器设置 keystore 可能不是世界末日。 HttpsURLConnection s 将仅向请求它的服务器进行身份验证(服务器始终请求客户端证书身份验证)并且从与您的证书颁发者匹配的 CA 列表中请求客户端证书。这在实践中可能不是什么大问题。

如果你觉得问题太大,似乎有一个undocumented property称为 com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory .其文档如下:

Set this property on the BindingProvider.getRequestContext() to enable HttpsURLConnection.setSSLSocketFactory(SSLSocketFactory). The property is set as follows:

SSLSocketFactory sslFactory = ...; Map ctxt = ((BindingProvider)proxy).getRequestContext(); ctxt.put(SSL_SOCKET_FACTORY, sslFactory);

THIS PROPERTY IS EXPERIMENTAL AND IS SUBJECT TO CHANGE WITHOUT NOTICE IN FUTURE.

关于ssl - 如何为 javax.xml.ws.Service 配置 SSL 套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8858084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com