Как установить параметры контекста TLS в Ruby (например, OpenSSL :: SSL :: SSL_OP_NO_SSLv2)

При использовании OpenSSL в C мы устанавливаем параметры в контексте для удаления слабых и поврежденных протоколов, таких как SSLv2 и SSLv3. Отssl.hВот небольшая маска некоторых полезных опций:

#define SSL_OP_NO_SSLv2     0x01000000L
#define SSL_OP_NO_SSLv3     0x02000000L
#define SSL_OP_NO_TLSv1     0x04000000L
#define SSL_OP_NO_TLSv1_2   0x08000000L
#define SSL_OP_NO_TLSv1_1   0x10000000L

Тем не менее, у меня возникают проблемы при установке их в Ruby:

if uri.scheme == "https"
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
  http.options = OpenSSL::SSL::SSL_OP_NO_SSLv2 | OpenSSL::SSL::OP_NO_SSLv3 |
                 OpenSSL::SSL::SSL_OP_NO_COMPRESSION
end

Результаты в:

$ ./TestCert.rb
./TestCert.rb:12:in `<main>': uninitialized constant OpenSSL::SSL::SSL_OP_SSL2 (NameError)

Руби документы для 1.9.3 (и 2.0.0) даже не удосужились об этом упомянуть.

Как установить параметры контекста TLS в Ruby?

Связанные с:настройка параметров SSLContext в ruby, Но нет способа прикрепить контекст кhttp когдаhttp.use_ssl = true.

Ответы на вопрос(1)

Ваш ответ на вопрос