我尝试使用 JavaEE8 从部署在 Payara5 上的应用程序查询 https 端点,该应用程序在 docker 容器(基于 Alpine Linux)上运行。下面的代码在我的开发人员机器上运行良好,但在 docker 容器中我得到了臭名昭著的Unrecognized SSL message, plaintext connection
. 此外,我正在使用 Cisco 代理通过 VPN 工作。
Response response = ClientBuilder.newClient()
.register(new Authenticator("",
""))
.target("https://my-company-intranet.net")
.path("resource/to/post")
.request(MediaType.APPLICATION_JSON)
.post(Entity.entity(vehicleConfiguration,
MediaType.APPLICATION_JSON_TYPE));
我到现在为止的尝试
- 添加自定义 SSLContext 使用我设置
.sslContext()
的地方或一般的 `HostnameVerifier allHostsValid = (hostname, sslSession) -> true`ClientBuilder
TLSv1.2
- 我设置
-Djavax.net.debug=ssl
了domain.xml
,这只是告诉我握手停止在http-thread-pool::http-listener-1(3), WRITE: TLSv1.2 Handshake, length = 228
System.setProperty("https.nonProxyHosts","*.my-company-intranet.net");
爪哇版
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (IcedTea 3.9.0) (Alpine 8.181.13-r0)
我想有证书,错误的Payara配置或类似的东西,但我不明白这是从哪里来的......在这种情况下,错误消息对我没有任何意义......