我在 Mac OS 10.6.8 上使用 Ruby 1.9.3p0(使用 rvm 安装)。当我尝试使用创建新的 Rails 应用程序时托管在 GitHub 上的应用程序模板 https://github.com/RailsApps/rails3-application-templates,以此(例如):
$ rails new myapp -m https://github.com/RailsApps/rails3-application-templates/raw/master/rails3-mongoid-devise-template.rb -T -O
我收到此错误消息:
/Users/me/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:799:in `connect': SSL_connect
returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
(OpenSSL::SSL::SSLError)
据我所知,Ruby 语言解释器正在使用 OpenSSL 连接到 GitHub 来请求应用程序模板文件。 GitHub 要求所有连接都使用 SSL 进行。连接失败,因为 OpenSSL 无法验证服务器证书。
我能够通过下载证书文件解决该问题:
$ cd /opt/local/etc/openssl
$ sudo curl -O http://curl.haxx.se/ca/cacert.pem
$ sudo mv cacert.pem cert.pem
我使用 Ruby 1.9.2 没有任何问题。为什么 Ruby 1.9.3 出现“证书验证失败”问题?这是 Ruby 1.9.3 的错误吗?它特定于 Mac OS 10.6.8 吗?我的解决方案是解决这个问题的正确方法吗?
正确答案涉及很多活动部分。取决于您的操作系统、Ruby 版本、OpenSSL 版本、Rubygems 版本。经过研究,我最终写了一篇文章。我的文章解释了错误的原因,提供了进一步诊断的步骤,展示了几种解决方法,并提出了可能的解决方案。这会很有帮助:
OpenSSL 错误和 Rails – 证书验证失败 http://railsapps.github.com/openssl-certificate-verify-failed.html
GitHub 上还有相关提交和问题的链接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)