2016-11-08 11 views
0

У меня есть входящий клиентский компонент JAX-WS для моего приложения. Когда я запускаю приложение локально с моего компьютера, он работает. Когда я пытаюсь запустить приложение в докере, он не работает с ошибкой в ​​заголовке этого сообщения.javax.net.ssl.SSLException: получено фатальное предупреждение: close_notify

На моем компьютере баннер в файле журнал регистрации:

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) 

Я использую докер изображения WEBSPHERE-свободу: 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, он использует 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 

При запуске WebSphere Liberty локально на моем ноутбуке с Oracle JDK пытается 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?

ответ

0

TLS 1.0 можно вынужден в первоначальном рукопожатия, создавая jvm.options файл, который поставляется в контейнер со следующими параметрами:

-Ddeployment.security.TLSv1=true 
-Dhttps.protocols=TLSv1