1

我尝试使用 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`ClientBuilderTLSv1.2
  • 我设置-Djavax.net.debug=ssldomain.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配置或类似的东西,但我不明白这是从哪里来的......在这种情况下,错误消息对我没有任何意义......

4

0 回答 0