SYSCALL返回=5 errno=0 state=SSLv3读取服务器hello A和Ruby RESTful客户端
我已经为这个问题挣扎了一段时间了。我正在尝试使用Rest客户端RubyGem来使用SSL证书访问API端点。我确信服务器只响应TLSv_1_2和TLSv_1_1,但是我似乎无法使它工作。 以下是代码片段: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
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的设置