Обработка SSL не выполняется напрямую LWP::Protocol::connect
. Вместо этого он использует IO::Socket::SSL
, который затем использует Net::SSLeay
, который затем использует ссылку в библиотеке OpenSSL, которая не обязательно является той, которую использует двоичный файл openssl
. Общая возможность использовать TLS 1.2 зависит от версии OpenSSL, которая должна быть не ниже 1.0.1.
Для получения версий различных частей используйте следующий код
use strict;
use IO::Socket::SSL;
printf "IO::Socket::SSL %s\n", $IO::Socket::SSL::VERSION;
printf "Net::SSLeay %s\n", $Net::SSLeay::VERSION;
printf "OpenSSL compiled %x\n", Net::SSLeay::OPENSSL_VERSION_NUMBER();
printf "OpenSSL linked %x - %s\n", Net::SSLeay::SSLeay(),
Net::SSLeay::SSLeay_version(0);
... SSL23_GET_SERVER_HELLO: сбой квитирования оповещения sslv3
Обратите внимание, что проблема рукопожатия TLS может иметь множество разных причин, а неподдерживаемая версия протокола TLS - лишь одна из многих. Отсутствие общих шифров является еще одной распространенной проблемой на этом этапе подключения.