gpt4 book ai didi

java - org.jolokia.client.exception.J4pException : IO-Error while contacting the server: javax.net.ssl.SSLException:证书中的主机名不匹配

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:28 25 4
gpt4 key购买 nike

我正在使用 jolokia 客户端连接到我的 fuse 服务器,该服务器使用 https 进行网络访问。我收到以下异常。

org.jolokia.client.exception.J4pException:联系服务器时出现 IO 错误:javax.net.ssl.SSLException:证书中的主机名不匹配:<10.16.205.20> != 在 org.jolokia.client.J4pClient.mapException (J4pClient.java:333) 在 org.jolokia.client.J4pClient.execute(J4pClient.java:198) 在 org.jolokia.client.J4pClient.execute(J4pClient.java:168) 在 org.jolokia.client.J4pClient.execute(J4pClient.java:117)

我已经将 10.16.205.20 的证书从我的客户端应用程序运行 jolokia 客户端的地方导入到我的本地 truststrore (cacerts)。我还验证了 hosts 文件具有 10.16.205.20 服务器上的证书中正在使用的域的条目。我正在使用以下代码进行连接。

J4pClient client = J4pClient.url(baseUrl).user(user.getName()).password(user.getPassword()).authenticator(new BasicAuthenticator().preemptive()).build();
J4pExecRequest request = new J4pExecRequest("org.apache.karaf:type=bundles,name=root","list");
J4pExecResponse response = client.execute(request);
JSONObject obj = response.asJSONObject();
((CloseableHttpClient)client.getHttpClient()).close();

此代码在使用 http 部署的服务器上运行良好。如果我遗漏了什么,请告诉我。

最佳答案

您需要让您的客户端使用绕过此检查的 ConnectionSocketFactory。

例如看看下面的代码(代码是 Kotlin,但我想你可以很容易地将它翻译成 java)

val sslCtx: SSLContext = SSLContexts
.custom()
.loadTrustMaterial(null, TrustSelfSignedStrategy())
.build()

val cf: ConnectionSocketFactory = SSLConnectionSocketFactory(sslCtx, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER)

J4pClient.url(s.jolokiaUrl)
.sslConnectionSocketFactory(cf)
.connectionTimeout(timeout.toMillis().toInt())
.build()

关于java - org.jolokia.client.exception.J4pException : IO-Error while contacting the server: javax.net.ssl.SSLException:证书中的主机名不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38748278/

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