【发布时间】:2011-12-27 10:23:51
【问题描述】:
我在 Mac OS 10.6.8 上使用 Ruby 1.9.3p0(使用 rvm 安装)。当我尝试使用application template hosted on GitHub 创建一个新的 Rails 应用程序时(例如):
$ 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 返回=1 errno=0 状态=SSLv3 读取服务器证书 B:证书验证失败 (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 吗?我的解决方案是解决此问题的正确方法吗?
【问题讨论】:
-
几个月前与另一个使用 net/http 的 gem 有过这个问题。以这种方式解决它: Koala.http_service.ca_path = "/etc/ssl/certs/" 所以您可能还需要在您的情况下添加您的 CA-Path。
-
丹尼尔 - 做同样的事情得到完全相同的错误!你是怎么解决的?尝试了上面的 3 行 - 不高兴。
-
嗨,鲍勃 - 很抱歉看到这个 bug 还在咬人。我没有要提供的解决方案,因为在如上所述更新我的证书后一切正常。它是系统特定的,因此很难诊断。可能是 rvm 问题。
标签: ruby-on-rails ruby ruby-on-rails-3.1 openssl rvm