SNI для TLS 1.2 с libssl, интегрированной с приложением C - PullRequest
0 голосов
/ 05 декабря 2018

Возникла проблема с партнером, который переносит свое приложение в облако.Первоначально рукопожатие TLS завершалось с:

140659109308320: ошибка: 1409E0E5: подпрограммы SSL: ssl3_write_bytes: сбой рукопожатия ssl: s3_pkt.c: 659:

Небольшое исследование и тестирование с OpenSSL вкомандная строка указывает, что мы должны включить SNI с соединением TLS.Он работал в командной строке, когда он был включен.

Мы все еще терпим неудачу в нашем приложении, когда пытаемся установить переменную SNI с ssl_set_tlsext_host_name, передаваемым в libssl нашим приложением, которое написано на C с libssl, связанным какбиблиотека общих объектов.Это было построено несколько лет назад, и история показывает, что мы используем OpenSSL 1.0.2h.

Приложение в настоящий момент работает на RHEL4, и самая высокая поддерживаемая версия RPM, доступная от RH и установленная в системе, является одной из версий 0.9.8.Мы установили 1.0.2h по отдельному пути или скомпилировали его из отдельного источника, чтобы связать его с приложением.История сборки немного размыта.Может быть, не имеет значения, но просто обратите внимание.

Мы можем заставить TLS-соединение работать с новой версией нашего приложения (к сожалению, пока не готовой к развертыванию), ссылаясь на локальную установку OpenSSL 1.0.2k на RHEL 7

Итак, пытаемся выяснить, чего нам не хватает в текущей версии приложения.Список изменений OpenSSL указывает на то, что ssl_set_tlsext_host_name было реализовано позднее в версии 0.9 и в более ранних выпусках 1.0.

Похоже, что нам не хватает ключевого элемента или формат вызова изменился где-то по пути.

Надеясь, что кто-то может иметь пример или опыт с аналогичной реализацией.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...