3

我见过很多人遇到此错误,但似乎没有解决方案可以为我解决此问题:

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)

似乎有很多解决方案建议转移证书文件。我已经安装和卸载了 macports、自制软件和作品。我为 github 设置了正确的密钥。尝试执行调用带有 github 上文件的模板的 rails 构建时发生错误。

系统:Mac OSX 10.6 - 最近升级。Ruby 1.9.3,也是最近的升级。导轨 3.2。我一直在谷歌上搜索,直到奶牛回家并花了几个小时解决这个问题,尽管似乎有几个像这样的问题,但我仍然希望有人找到解决方案但尚未发布。我想我知道为什么会这样 - net/http 没有找到证书,对吧?但我不知道如何解决它。提前感谢您的任何帮助。

编辑:更多信息。在 ruby​​ 1.9.2(rvm 使用 1.9.2)中尝试完全相同的构建完成而不会引发错误。

另一个编辑:我已经尝试了 rvm 页面上关于 openssl 包的所有内容,安装它并重新安装 ruby​​-1.9.3 并使用指向该包的 openssl 配置标志。仍然没有喜悦。

另一个编辑:似乎是 OpenURI 有问题 - 找不到一种方法让它知道证书位置:-(

4

1 回答 1

2

我只是直接修改 MacOS 的 http.rb 源(L:669):

def use_ssl=(flag)
  flag = flag ? true : false
  if started? and @use_ssl != flag
    raise IOError, "use_ssl value changed, but session already started"
  end
  if flag && !@ca_file //added by riceball
    @ca_file = '/opt/local/share/curl/curl-ca-bundle.crt' 
  end

必须先安装

 port install curl-ca-bundle
于 2012-02-29T12:49:03.820 回答