Ruby on rails SSL_connect SYSCALL返回=5 errno=0 state=SSLv2/v3读取服务器hello A-Faraday::Error::ConnectionFailed

Ruby on rails SSL_connect SYSCALL返回=5 errno=0 state=SSLv2/v3读取服务器hello A-Faraday::Error::ConnectionFailed,ruby-on-rails,ruby,omniauth,Ruby On Rails,Ruby,Omniauth,我在这里看到了很多答案,但没有一个有效 我使用的是与第三方客户的集成 我正在使用所述的设置阶段,但我总是遇到以下错误: Authentication failure! failed_to_connect: Faraday::Error::ConnectionFailed, SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A Faraday::Error::ConnectionFailed (SSL_

我在这里看到了很多答案,但没有一个有效

我使用的是与第三方客户的集成

我正在使用所述的设置阶段,但我总是遇到以下错误:

Authentication failure! failed_to_connect: Faraday::Error::ConnectionFailed, SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 read server hello A

Faraday::Error::ConnectionFailed (SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3     read server hello A):
.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:918:in `connect'
.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/net/http.rb:918:in `block in connect'
我在
config/initializers
中的初始值设定项是:

Rails.application.config.middleware.use OmniAuth::Builder do
  client_id = 'my_client_id'
  client_secret = 'secret'

  ca_file = Rails.root.join('config', 'cacert.pem').to_s

  ssl_options = {}
  ssl_options[:ca_path] = '/usr/local/etc/openssl'
  ssl_options[:ca_file] = ca_file

  provider :my_partner_provider, client_id, client_secret,  :client_options => {:ssl => ssl_options},
    setup: ->(env){
    req = Rack::Request.new(env)
    site = "https://#{req.params.fetch('shop')}"
    env['omniauth.strategy'].options[:client_options][:site]  = site
  }
end
我尝试过使用和不使用ssl选项

作为补充,以下是我的堆栈:


我输入了terminal
openssl s_client-showcerts-connectpartnerURL.com:443感谢@mislav,他给出了更改的提示

我不得不改变这一点,因为我的合作伙伴使用asp.net构建了其应用程序,并使用了此版本的SSL。更多信息请访问

因此,最终代码如下所示:

Rails.application.config.middleware.use OmniAuth::Builder do
  client_id = 'my_client_id'
  client_secret = 'secret'

  ssl_options = {}
  ssl_options[:version] = :TLSv1

  ssl = {}
  ssl[:ssl] =  ssl_options

  provider :partner, client_id, client_secret,
    client_options: { connection_opts: ssl} ,
    setup: ->(env){
    req = Rack::Request.new(env)
    token_url = "https://#{req.params.fetch('shop')}"
    env['omniauth.strategy'].options[:client_options][:token_url] = token_url
  }
end

你找到解决方案了吗?我想说这是一个bug,但它可能不是来自Net::HTTP。我在连接Sharepoint services时遇到了这个问题:wget也无法连接,而curl根本没有问题。但您解决了吗?我仍然没有找到任何东西。您使用的是什么OpenSSL版本?是系统版本还是RVM附带的版本?显式设置
ssl\u版本
是否有帮助?