gpt4 book ai didi

ssl - 如何禁用 CXF 3.0.0+ jax-rs 2.0 客户端的 CN 检查

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

我不知道如何通过 CXF 3.0.4 JAX-RS 2.0 客户端以编程方式禁用 CN 检查。我的代码如下:

     System.setProperty("jsse.enableSNIExtension", "false"); 
HttpsURLConnection.setDefaultHostnameVerifier(
new HostnameVerifier(){

public boolean verify(String hostname,
SSLSession sslSession) {

return true;

}
});
Client client = ClientBuilderImpl.newClient();
String urlHost = "https://" + centralNode;
WebTarget target = client.target(urlHost).path(BASE_SERVICE_URL);
String encodedpw = Base64.encodeBase64String(passwd.getBytes());
String body = "{\"uid\" : \"" + uid + "\",\"password\": \"" + encodedpw + "\"}";
Response res = target.request(MediaType.APPLICATION_JSON).post(Entity.entity(body, MediaType.APPLICATION_JSON));

如您所见,我已经尝试覆盖默认的主机名验证器,并将 jsse.enableSNIExtension 设置为 false。这些都不起作用,我仍然遇到异常:

“https URL 主机名与客户端信任库中服务器证书上的通用名称 (CN) 不匹配。确保服务器证书正确,或禁用此检查(不推荐用于生产)设置 CXF 客户端 TLS 配置属性“disableCNCheck”为真。

请帮忙!

最佳答案

您正在寻找这段代码;

       HTTPConduit httpConduit=(HTTPConduit)ClientProxy.getClient(SAMPLE_PORT).getConduit();
TLSClientParameters tlsCP = new TLSClientParameters();
tlsCP.setDisableCNCheck(true);
httpConduit.setTlsClientParameters(tlsCP);

始终在测试环境中使用此代码。!

关于ssl - 如何禁用 CXF 3.0.0+ jax-rs 2.0 客户端的 CN 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590596/

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