有没有办法在单个 RestClient 连接上强制 SSL 版本?
我需要将其设置为“SSLv3”。
我可以使用以下方法对所有连接执行此操作:
OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ssl_version] = 'SSLv3'
但这当然太全球化了。
尝试在初始化中传递参数时,它不起作用:
RestClient::Resource.new('https://example.com',:ssl_version => "SSLv3")
有没有办法在单个 RestClient 连接上强制 SSL 版本?
我需要将其设置为“SSLv3”。
我可以使用以下方法对所有连接执行此操作:
OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ssl_version] = 'SSLv3'
但这当然太全球化了。
尝试在初始化中传递参数时,它不起作用:
RestClient::Resource.new('https://example.com',:ssl_version => "SSLv3")
您可以使用这样的调用:
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='