У меня проблемы с пониманием поведения Dominos, предлагающего SSL или TLS для исходящих подключений к WebService.
У нас есть агент, который обращается к WebService. WebService принимает только TLS 1.0
Время от времени соединение вылетает, и я включаю DEBUG_SSL_ALL = 3, чтобы посмотреть, что происходит
Я понял, что соединение не удается из-за того, что сервер предлагает SSLV3.0 вместо TLS1.0, см. Пример в журнале в 05:45:58
Как сервер может это сделать? Я читал в другом посте, что это иногда может происходить из-за «возобновления», которое следует запомнить и быстрее подключать. Звучит неплохо, но в данном случае причина не в этом. У меня есть этот агент, который можно запустить самостоятельно на пару часов, и он все равно внезапно меняет протокол.
Нашему серверу необходимо сохранить возможность использования SSL по другим причинам. Поэтому я пока не могу выполнить DISABLE_SSLV3 = 1, а принимающий сервер не может использовать SSL.
Вот мой журнал. Надеюсь на некоторую помощь. Начало соединения идентично, как я его вижу, есть ли еще какие-нибудь умные отладочные операторы, которые могут дать мне больше?
Домино 9.0.1 FP4
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 0 Available cipherspec: 0x0035
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 1 Available cipherspec: 0x002F
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 2 Available cipherspec: 0x000A
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLInitContext> 3 Available cipherspec: 0x0005
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM int_MapSSLError> Mapping SSL error 0 to 0 [SSLNoErr]
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSL_Handshake> Enter
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSL_Handshake> Current Cipher 0x0000 (Unknown Cipher)
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSL_Handshake> outgoing ->protocolVersion: 0301
[10A4:000C-082C] 01/13/2016 05:26:59.36 PM SSLAdvanceHandshake Enter> Processed : 0 State: 4 (HandshakeClientIdle)
[10A4:000C-082C] 01/13/2016 05:26:59.38 PM SSLAdvanceHandshake Enter> Processed : SSL_hello_request
[10A4:000C-082C] 01/13/2016 05:26:59.38 PM SSLAdvanceHandshake calling SSLPrepareAndQueueMessage> SSLEncodeClientHello
[10A4:000C-082C] 01/13/2016 05:26:59.38 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[1204:0006-1390] 01/13/2016 05:28:59.91 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[10A4:000F-08BC] 01/13/2016 05:29:54.78 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[0F38:000B-0BCC] 01/13/2016 05:36:03.58 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[1204:0009-0A94] 01/13/2016 05:45:58.19 PM SSLInitContext> 0 Available cipherspec: 0x0035
[1204:0009-0A94] 01/13/2016 05:45:58.19 PM SSLInitContext> 1 Available cipherspec: 0x002F
[1204:0009-0A94] 01/13/2016 05:45:58.19 PM SSLInitContext> 2 Available cipherspec: 0x000A
[1204:0009-0A94] 01/13/2016 05:45:58.19 PM SSLInitContext> 3 Available cipherspec: 0x0005
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM int_MapSSLError> Mapping SSL error 0 to 0 [SSLNoErr]
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSL_Handshake> Enter
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSL_Handshake> Current Cipher 0x0000 (Unknown Cipher)
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSL_Handshake> outgoing ->protocolVersion: 0301
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSLAdvanceHandshake Enter> Processed : 0 State: 4 (HandshakeClientIdle)
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSLAdvanceHandshake Enter> Processed : SSL_hello_request
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSLAdvanceHandshake calling SSLPrepareAndQueueMessage> SSLEncodeClientHello
[1204:0009-0A94] 01/13/2016 05:45:58.21 PM SSLEncodeClientHello> We offered SSL/TLS version SSLV3.0 (0x0300)
...
[10A4:0012-08A0] 01/13/2016 05:50:59.42 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[10A4:0015-0DF4] 01/13/2016 05:52:23.57 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
...
[10A4:0018-090C] 01/13/2016 05:53:33.55 PM SSLEncodeClientHello> We offered SSL/TLS version TLS1.0 (0x0301)
Я знаю шифры для 1.0.
Шифры совпадают с WebService
Когда я пишу, именно Domino внезапно (случайным образом) любит предлагать, часть журнала
- Предлагаем версию SSL / TLS SSLV3.0 (0x0300) (ошибка)
вместо того
- Мы предложили SSL / TLS версию TLS1.0 (0x0301) (успешно)
Шифры в моем журнале предназначены для TLS 1.0, и поскольку я установил SSL_DISABLE_TLS_12 = 1
Похоже, что шифры, которые вы настроили для своего Domino-сервера, не соответствуют шифрам, предлагаемым веб-службой. Вам нужно выяснить, какие шифры поддерживает ваш сервис, а затем включить их на вашем сервере домино с помощью параметра SSLCipherSpec-notes.ini-.
На этот сайт IBM вы найдете список всех поддерживаемых шифров для вашей версии. Для 9.0.1FP4 говорится:
Доступные шифры для TLS 1.0 / SSLv3
По умолчанию включены следующие шифры (как видно из ваших журналов):
Просто сопоставьте их с шифрами вашего веб-сервиса и включите то, что необходимо ...