Docker コンテナー (Alpine Linux ベース) で実行されている Payara5 にデプロイされたアプリケーションから、JavaEE8 を使用して 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()
で使用してカスタム SSLContext を追加しますClientBuilder
。ここで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 の構成が間違っているか、似たようなものだと思いますが、これがどこから来ているのか理解できません...このコンテキストでは、エラーメッセージは私には意味がありません...