IdServerIOHandlerSSLOpenSSL не работает с новыми сертификатами

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
jsa
постоялец
Сообщения: 301
Зарегистрирован: 28.11.2017 12:46:04

IdServerIOHandlerSSLOpenSSL не работает с новыми сертификатами

Сообщение jsa »

Центры выдачи SSL стали выдавать новые сертификаты.
И старые библиотеки Indy10 + libeay32.dll + ssleay32.dll которые я использую? с ними не работают.

Сервер возвращает ошибку, мол соединение прервано до завершения рукопожатия TSL
Поле разбираться, обратил внимание что privkey.pem стал существенно другим.
Вот что пишут
Маленький размер (около 250 байт вместо привычных 2-3 КБ) файла privkey.pem связан с тем,
что вместо классического алгоритма RSA Let’s Encrypt теперь по умолчанию использует более современный ECDSA (Elliptic Curve Cryptography).
Нашел что ECDSA поддерживается в libeay32.dll версии 1.0.2u (1.0.2.21)
Сайт https://indy.fulgan.com/SSL/ не открывается даже через КВН на разных провайдерах.

Еле нашел то, что можно скачать тут http://www.infoas.ru/openssl_1_0_2u/
причем 1.0.2u почему-то обозначены как _old
Заменил библиотеки , но теперь они не подключаются, с ошибкой
Exception --- EIdOSSLCouldNotLoadSSLLibrary: Could not load SSL library.
WhichFailedToLoad --- "Failed to load libeay32.dll."
Погуглил на тему, пишут что нужно использовать какие-то костыли (https://github.com/MWASoftware/IndySecOpenSSL) для работы Indy10 с новыми переименованными библиотеками libcrypto.dll и libssl.dll

Кто-нибудь проходил этот путь? На каком Lazarus и Indy10 это точно работает?
jsa
постоялец
Сообщения: 301
Зарегистрирован: 28.11.2017 12:46:04

Сообщение jsa »

---- Обновляю.

сайт indy.fulgan.com закрыт. Всё перенесено на гитхаб https://github.com/IndySockets/OpenSSL-Binaries
скачал варианты 32 и 64, оказалось, что то, что нашел (см. выше) это были x64 библиотеки.
Положил x32 версии 1.0.2u
Эти подключаются уже без ошибок.
сервер с https запускается, но ошибка возвращается та же самая
Client network socket disconnected before secure TLS connection was established
Аватара пользователя
WAYFARER
энтузиаст
Сообщения: 569
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Сообщение WAYFARER »

jsa писал(а): 27.05.2026 09:54:01 сервер с https запускается, но ошибка возвращается та же самая
Самый простейший вариант выпустить сертификат RSA. Пока LE позволяет...

Код: Выделить всё

certbot certonly --standalone --key-type rsa --rsa-key-size 2048 -d example.com
Ну или более правильный вариант поставить перед ним reverse proxy, например nginx (или лучше Caddy если Windows).
То есть внешний веб-сервер принимает HTTPS-соединение и работает с современными алгоритмами шифрования, а дальше уже передаёт запрос в Indy по обычному локальному HTTP, например на localhost:8080. Решение простейшее и практически бесплатное по времени и сложности.
Ответить