Одно из моих устаревших приложений Ruby все еще использует Ruby 1.8.7. Он делает много HTTP-запросов к сторонним веб-сервисам, и некоторые из них выполняются через SSL.
Эти сторонние службы прекращают поддержку SSLv3 из-за уязвимости POODLE, и я хотел бы исправить свои клиенты, чтобы продолжать подключаться к ним.
Стандартная библиотека Ruby Net::HTTP
, похоже, не имеет возможности изменить используемую версию SSL.
В Ruby openssl
(ssl- internal.rb) есть способ изменить версию. К сожалению, это не раскрывается Net::HTTP
(https .rb).
Неужели мы (пользователи Ruby 1.8.7) облажались?
Правка: на самом деле кажется, что клиент переключается на TLSv1
, если сервер не поддерживает SSLv3
. У меня есть веб-сайт с поддержкой SSL без поддержки SSLv3 за Nginx, и я убедился, что мой клиент 1.8.7 переключается на TLSv1, и запрос работает. Если вы хотите проверить это самостоятельно, посмотрите здесь: https://serverfault.com/questions/620123/how-can-i-let-nginx-log-the-used-ssl-tls-протокол-и-шифр