如何在Ruby窗口上防止SSL错误

时间:2016-08-09 09:44:03

标签: ruby windows ssl

ruby​​版本:ruby 2.2.4p230(2015-12-16修订版53155)[i386-mingw32]

错误:OpenSSL :: SSL :: SSLError:SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败

用于测试的代码:

url = URI.parse("https://www.google.com/")
http = Net::HTTP.new(url.host, url.port)
http.open_timeout = 10
http.read_timeout = 10
path = url.path
path = '/' if path == ''
path += '?' + url.query unless url.query.nil?
http.use_ssl = true
request = Net::HTTP::Get.new(path, nil)
response = http.request(request)
puts response.inspect

我尝试了大约2个google页面的解决方案以及我刚刚提交问题的宝石:https://github.com/liveeditor/net_http_ssl_fix/issues/2

我已尝试手动添加证书,添加环境变量,声称要修复它的宝石以及谷歌前2页的所有其他解决方案。

请告诉我需要哪些更多信息来帮我解决此问题!

1 个答案:

答案 0 :(得分:1)

试试这个解决方案:

https://gist.github.com/fnichol/867550

基本上,下载cacert.pem文件。然后将系统env变量SSL_CERT_FILE设置为该位置。

虽然这个解决方案在几个月前对我有用,但我最近在笔记本电脑和桌面上都进行了Windows更新,当我使用open_uri时它会产生这个问题。

让我知道这对您有何影响。