OpenSSL :: SSL :: SSLError:Ruby 2.2.1上的SSL_connect错误 [英] OpenSSL::SSL::SSLError: SSL_connect error on Ruby 2.2.1

查看:77
本文介绍了OpenSSL :: SSL :: SSLError:Ruby 2.2.1上的SSL_connect错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是要运行的代码:

require "net/http"

uri = URI.parse("https://www.google.com")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)

我的Mac OSX中有两个版本的 irb .系统自带一个默认值.另一个稍后通过 rvm 安装.

I got two version of irb in my Mac OSX. One comes default with system. The other is installed later on through rvm.

  • /usr/bin/irb(红宝石2.0.0p481)
  • /Users/user/.rvm/rubies/ruby-2.2.1/bin/irb(ruby 2.2.1p85)

使用较旧的irb时,运行上面的代码,它会给我:

When using older irb, run above code, it gives me:

#< Net :: HTTPOK 200 OK readbody = true>

当使用较新的 irb 时,运行上面的代码,它给了我:

When using newer irb, run above code, it gives me:

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
    from /Users/user/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:923:in `connect'
    from /Users/user/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:923:in `block in connect'
    from /Users/user/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/timeout.rb:74:in `timeout'
    from /Users/user/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:923:in `connect'
    from /Users/user/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:863:in `do_start'
    from /Users/user/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:852:in `start'
    from /Users/user/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/net/http.rb:1375:in `request'
    from (irb):7
    from /Users/user/.rvm/rubies/ruby-2.2.1/bin/irb:11:in `<main>'

应该是新版本的ruby无法识别SSL的问题.尝试不同在StackOverflow上的解决方案,但似乎都无法解决问题.

It should be the issue of SSL is not recognized by new version of ruby. Tried different solutions on StackOverflow but none of them seems fix the problem.

推荐答案

在将OSX升级到El Capitan之后,我通过rvm重新安装了Ruby 2.2.3,并且可以正常工作.

After upgrade my OSX to El Capitan, I reinstall Ruby 2.2.3 through rvm, and it works.

这篇关于OpenSSL :: SSL :: SSLError:Ruby 2.2.1上的SSL_connect错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆