我尝试使用JavaEE8从在docker容器(基于Alpine Linux)上运行的Payara5上部署的应用程序中查询https端点。下面的代码在我的开发人员机器上可以正常工作,但是在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()
上使用ClientBuilder
添加自定义SSLContext,我在其中设置TLSv1.2
或一般的`HostnameVerifier allHostsValid =(hostname,sslSession)-> true`` -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");
Java版本
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (IcedTea 3.9.0) (Alpine 8.181.13-r0)
我认为有些证书,Payara配置错误或类似原因,但是我不知道这是从哪里来的。在这种情况下,错误消息对我没有任何意义...