ruby-on-rails - "Certificate verify failed"使用 Ruby 1.9.3 时出现 OpenSSL 错误

标签 ruby-on-rails ruby ruby-on-rails-3.1 openssl rvm

我在 Mac OS 10.6.8(使用 rvm 安装)上使用 Ruby 1.9.3p0。当我尝试使用 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 
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 Errors and Rails – Certificate Verify Failed

还有指向 GitHub 上相关提交和问题的链接。

关于ruby-on-rails - "Certificate verify failed"使用 Ruby 1.9.3 时出现 OpenSSL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8101377/

相关文章:

ruby-on-rails - rails3上的注意和错误

ruby-on-rails - 以数组作为属性的 Ruby 模型

ruby-on-rails - 通过迁移向列添加默认值

html - 向表达式内部 Ruby 字符串中的单词添加文本样式

ruby-on-rails-3.1 - 如何将字符串转换为数组

ruby-on-rails - 如何只输入唯一关联?

javascript - Rails '.js.erb' 不呈现部分

ruby-on-rails - 如何在 Rails 3 中的过滤器方法之前测试应用程序 Controller ?

ruby-on-rails - 无方法错误 : undefined method `confirm!' for #<User

ios - Braintree 保险库不存储付款方式