OpenSSL :: SSL :: SSLError:Ruby 2.2.1上的SSL_connect错误 [英] OpenSSL::SSL::SSLError: SSL_connect error on Ruby 2.2.1
问题描述
这是要运行的代码:
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屋!