SYSCALL返回=5 errno=0 state=SSLv3读取服务器hello A和Ruby RESTful客户端

SYSCALL返回=5 errno=0 state=SSLv3读取服务器hello A和Ruby RESTful客户端,ruby,ssl,openssl,Ruby,Ssl,Openssl,我已经为这个问题挣扎了一段时间了。我正在尝试使用Rest客户端RubyGem来使用SSL证书访问API端点。我确信服务器只响应TLSv_1_2和TLSv_1_1,但是我似乎无法使它工作。 以下是代码片段: resource = RestClient::Resource.new( endpoint, :ssl_client_cert => OpenSSL::X509::Certificate.new(File.read(con

我已经为这个问题挣扎了一段时间了。我正在尝试使用Rest客户端RubyGem来使用SSL证书访问API端点。我确信服务器只响应TLSv_1_2和TLSv_1_1,但是我似乎无法使它工作。 以下是代码片段:

resource = RestClient::Resource.new(
                endpoint,
                :ssl_client_cert  => OpenSSL::X509::Certificate.new(File.read(config["cert"])),
                :ssl_client_key   =>  OpenSSL::PKey::RSA.new(File.read(config["key"])),
                :ssl_version      => :TLSv1_2,
                :verify_mode      =>  OpenSSL::SSL::VERIFY_PEER
            )

response = resource.delete(:params => {:name => 'test'})

p endpoint + " | " + response.code.to_s
这就是我得到的:

/usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:923:in'connect':SSL\u connect SYSCALL returned=5 errno=0 state=SSLv3 read server hello A(OpenSSL::SSL::SSLError)
from/usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:923:in'block in connect'
from/usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/timeout.rb:74:in'timeout'
from/usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:923:in'connect'
from/usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:863:in'do_start'
from/usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:852:in'start'
from/usr/local/rvm/gems/ruby-2.2.1/gems/rest-client-1.8.0/lib/restclient/request.rb:413:in“传输”
from/usr/local/rvm/gems/ruby-2.2.1/gems/rest-client-1.8.0/lib/restclient/request.rb:176:in'execute'
from/usr/local/rvm/gems/ruby-2.2.1/gems/rest-client-1.8.0/lib/restclient/request.rb:41:in'execute'
来自/usr/local/rvm/gems/ruby-2.2.1/gems/rest-client-1.8.0/lib/restclient
来自测试。rb:47:in`'

我已经研究了一段时间,但没有多大帮助。

强烈建议使用顶级初始值设定项:

conf/initializer/tls\u settings.rb

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

您是否尝试过使用常规的
net/http
stdlib?我会尝试让它工作,然后将其切换到Rest-Client。是的,我做到了,不幸的是,同样的结果:(你解决了问题吗?谢谢!我没有使用Rails。这仍然相关吗?是的,这是关于Ruby stdlib的设置