https
我们的生产(Heroku)和开发(本地)实例在访问端点时一直在工作。但是,在过去 2 天内,我们开始收到可怕的 OpenSSL 错误:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
我在 StackOverflow 和http://railsapps.github.io/openssl-certificate-verify-failed.html上阅读了很多 OpenSSL 失败的帖子。
我已更新到最新的 OpenSSL 并通过运行以下命令进行确认:
ruby -ropenssl -e 'p OpenSSL::OPENSSL_VERSION'
"OpenSSL 1.0.1e 11 Feb 2013"
但是,我仍然收到此错误:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
当我调用指向端点hash = JSON.parse(open(_url).read)
的位置时。_url
https
我似乎在访问某些提供商时没有问题。例如,当我发出: 时curl -I https://d2chzxaqi4y7f8.cloudfront.net/gems/rake-0.9.2.2.gem
,它似乎有效。
我也试过这个irb
,它似乎工作:
require 'open-uri'
open 'https://google.com'
=> #<File:/var/folders/dv/s_2dq32n0ggcn65kn61jtmc80000gn/T/open-uri20130630-887-y2cg2q>
这是端点提供商需要修复的问题,还是我的本地和生产实现的 OpenSSL 的问题?