将RestClient SSL版本设置为SSLv3

时间:2013-06-28 23:26:37

标签: ruby-on-rails ruby openssl rest-client

有没有办法在单个RestClient连接上强制使用SSL版本?

我需要将其设置为'SSLv3'。

我可以使用以下方法为所有连接执行此操作:

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

但那当然太全球了。

尝试在初始化时传递参数时,它不起作用:

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

1 个答案:

答案 0 :(得分:3)

你可以使用这样的调用:

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

但请注意,旧版本的rest-client会默默地丢弃: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='