Websocket. RECV TLSv1.2 ALERT: fatal, handshake_failure

imendan

Green Team
22.09.2010
159
4
BIT
0
Здравствуйте, г-да Профи!
Использую Java-WebSocket-1.5.1.jar. При попытке законнектиться к локальному Url, выходит ошибка (полный текст дебага пригалаю во вложении):
WebSocketConnectReadThread-37, READ: TLSv1.2 Alert, length = 2
WebSocketConnectReadThread-37, RECV TLSv1.2 ALERT: fatal, handshake_failure
WebSocketConnectReadThread-37, called closeSocket()

Сам код:
Java:
WebSocketClient c = new WebSocketClient(new URI(
                    "wss://127.0.0.1:3333/"));
                c.connectBlocking();

Версия IBM Notes/ Domino Designer 10.0.1.
Java - 8u181.

Этот же код без ошибок работает в Нетбинс (java 8u251). На сайте пишут, что TLSv1.2 уже поддерживается с версии 8u161 и выше.
Может кто-нибудь сталкивался уже и знает как решить данную проблему. Прошу помочь, господа!
 

Вложения

  • Debug text.txt
    8,1 КБ · Просмотры: 197

garrick

Lotus Team
26.10.2009
1 367
152
BIT
364
Возможно вам необходимо положить ключи сервера и клиента в хранилище ключей JVM Domino... но это не точно, скорее всего где-то в коде необходимо указать версию протокола.
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
543
по умолчанию TLS идет 1,0
Вру. с 10-ки уже должен поддерживаться сразу, но вот такие вещи надо еще выставить

и вот тут нужен 28-й слайд

А это для 9-ки:
When you disable TLS 1.0 and TLS 1.1 because of security reasons, you can get into trouble when running Java agents inside HCL Domino when performing https requests. JVM runs default on TLS 1.0.

You have to tell HCL Domino JVM to use TLS 1.2. How?
  1. create a textfile in /opt/HCL/jvmoptions.txt and put 1 line inside it:
    https.protocols=TLSv1.2
  2. add 1 line inside notes.ini of the Domino server:
    JavaUserOptionsFile= /opt/HCL/jvmoptions.txt
Then the only thing left you have to do is to restart the Domino server.
 
Последнее редактирование:

imendan

Green Team
22.09.2010
159
4
BIT
0
Возможно вам необходимо положить ключи сервера и клиента в хранилище ключей JVM Domino... но это не точно, скорее всего где-то в коде необходимо указать версию протокола.
Ключи сервера я уже поместил в cacert.

по умолчанию TLS идет 1,0
Вру. с 10-ки уже должен поддерживаться сразу, но вот такие вещи надо еще выставить

и вот тут нужен 28-й слайд

А это для 9-ки:
Локальный веб-сокет сервер - государ. программка написанная на Java (не Domino server).
Веб-сокет клиент Ibm Domino Designer.

Получается Domino Server никак не участвует в данной связке.
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
543
Локальный веб-сокет сервер - государ. программка написанная на Java (не Domino server).
Веб-сокет клиент Ibm Domino Designer.

Получается Domino Server никак не участвует в данной связке.

IBMJSSE2 will not allow protocol SSLv3 per com.ibm.jsse2.disableSSLv3 set to TRUE or default
jdk.tls.client.protocols is defined as null
SSLv3 protocol was requested but was not enabled

возможно выставить параметры для jvm через файлик:
-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
или
-Dcom.ibm.jsse2.overrideDefaultTLS=true
-Djdk.tls.client.protocols=TLSv1.2

Не смотря на то что в 10-ке ibm jvm j9 , но многие фишки от оракловой иногда работают.

 
  • Нравится
Реакции: VladSh и lmike

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
473
Помогло. Спасибо.
я уже упоминал не раз - борьба с доминошной джавой порой очень непроста ;)
мб стоит думать в сторону интеграции со сторонними джава аппсерверами
более-того скоро 8мая слетит с поддержки, а хцл вряд ли будет впиливать изменения в сертах и прочих протоколах самостоятельно
несмотря на основу openjdk - миграция на новые версии жвм будет с запозданием и как следствие - куча "особенностей"
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!