0

アプリケーションへの送信 JAX-WS クライアント コンポーネントがあります。コンピューターからローカルでアプリケーションを実行すると、動作します。docker でアプリを実行しようとすると、この投稿のタイトルにあるエラーで失敗します。

私のコンピューターでは、ログ ファイルのバナーは次のとおりです。

Launching portolano (WebSphere Application Server 16.0.0.3/wlp-1.0.14.cl160320160831-1555) on Java HotSpot(TM) 64-Bit Server VM, version 1.8.0-ea-b121 (en_US)

Docker イメージ websphere-liberty:javaee7 を使用しており、ログのバナーは次のとおりです。

Launching defaultServer (WebSphere Application Server 16.0.0.3/wlp-1.0.14.cl160320160831-1555) on IBM J9 VM, version pxa6480sr3fp20-20161019_02 (SR3 FP20) (en_US)

この問題は、クライアント ハンドシェイクに関連しているようです。

WebSphere Liberty docker イメージを実行すると、IBM JDK が使用され、拒否された TLS 1.2 クライアント ハンドシェークが試行されます。SSLデバッグをオンにしたときのデバッグは次のとおりです。

LargeThreadPool-thread-53, WRITE: TLSv1.2 Handshake, length = 201
LargeThreadPool-thread-53, READ: TLSv1 Alert, length = 2
LargeThreadPool-thread-53
, RECV TLSv1.2 ALERT:  
fatal, 
close_notify

Oracle JDK を使用してラップトップでローカルに WebSphere Liberty を実行すると、動作する TLS 1 クライアント ハンドシェイクが試行されます。上記のハンドシェイクの同じ場所で ssl デバッグをオンにしたときのデバッグは次のとおりです。

Default Executor-thread-23, WRITE: TLSv1 Handshake, length = 183
Default Executor-thread-23, READ: TLSv1 Handshake, length = 65
*** ServerHello, TLSv1

リモートサーバーを制御できません。IBM JDK に Oracle JDK と同じことを強制するにはどうすればよいですか?

4

1 に答える 1

0

TLS 1.0 は、コンテナーに次のオプションを指定して提供される jvm.options ファイルを作成することにより、初期ハンドシェークで強制できます。

-Ddeployment.security.TLSv1=true
-Dhttps.protocols=TLSv1
于 2016-11-16T23:08:15.977 に答える