2013-06-28 6 views
1

Есть ли способ принудительно использовать версию SSL для одного соединения RestClient?Настройка версии RestClient SSL на SSLv3

Мне нужно установить его на «SSLv3».

Я могу сделать это для всех соединений с помощью:

OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ssl_version] = 'SSLv3' 

Но это, конечно, слишком глобальны.

При попытке передать параметры в инициализации, он не работает:

RestClient::Resource.new('https://example.com',:ssl_version => "SSLv3") 
+0

Технически вы не можете использовать метод OpenSSL выше, чтобы установить шифрование для всех соединений. SSLv3 жестко закодирован в RestClient. https://github.com/treeder/rest_client/blob/master/lib/restclient/request.rb#L59 (по крайней мере, для версии gem'd) –

ответ

2

Вы можете использовать вызов вроде этого:

RestClient::Request.execute(:url => 'https://example.com', :ssl_version => 'SSLv3', :method => 'get') 

Но обратите внимание, что старые версии покоя клиента тихо отменил бы опцию: ssl_version. Вы можете проверить, происходит ли это с использованием фиктивной версии SSL:

>> RestClient::Request.execute(:url => 'https://example.com', :ssl_version => 'blah', :method => 'get') 
ArgumentError: unknown SSL method `blah'. 
from /usr/lib/ruby/1.9.1/openssl/ssl-internal.rb:38:in `ssl_version=' 

 Смежные вопросы

  • Нет связанных вопросов^_^