gpt4 book ai didi

java - 如何在 JAX-WS 客户端中禁用证书验证?

转载 作者:IT老高 更新时间:2023-10-28 20:59:19 25 4
gpt4 key购买 nike

如何使用 javax.xml.ws.Service 在 JAX-WS 客户端中禁用证书验证?

我尝试在 SSLSocketFactory 中创建一个全信任的 TrustManager 并尝试将它与 BindingProvider 绑定(bind)

SSLContext sc = SSLContext.getInstance("SSL"); 
sc.init(null, trustAllCerts, new java.security.SecureRandom());

Map<String, Object> ctxt = ((BindingProvider) wsport ).getRequestContext();
ctxt.put(JAXWSProperties.SSL_SOCKET_FACTORY, sc.getSocketFactory());

但我仍然收到异常:无法找到请求目标的有效证书路径

但是当我只使用它时它会起作用

HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 

或者有没有办法让 javax.xml.ws.Service 使用我创建的 HttpsURLConnection

最佳答案

我在这里找到了解决方案: http://schrepfler.blogspot.com.br/2009/06/relaxing-ssl-validation-for-jaxws.html

我正在使用该解决方案在主类的静态 block 上调用两个静态方法,如下所示:

static {
SSLUtilities.trustAllHostnames();
SSLUtilities.trustAllHttpsCertificates();
}

希望对你有帮助

编辑:正如 David J. Liszewski 指出的那样,这会破坏来自该 JVM 的所有连接的 SSL/TLS。所以,请记住这一点。

关于java - 如何在 JAX-WS 客户端中禁用证书验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12473576/

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