我见过很多人都有这个错误,似乎没有任何解决办法可以解决这个问题:
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,也是最近的升级版。 Rails 3.2。我用谷歌搜索直到奶牛回家并花了好几个小时来解决这个问题,即使看起来好像有几个这样的问题,我也希望有人找到一个解决方案并且尚未发布。我想我知道为什么它正在发生 - net / http没有找到证书,对吧?但我无法弄清楚如何解决它。提前感谢您的任何帮助。
编辑:更多信息。在ruby 1.9.2(rvm使用1.9.2)中尝试完全相同的构建完成而不会抛出错误。
另一个编辑:我已经在rvm页面上尝试了关于openssl包的所有内容,安装并重新安装ruby-1.9.3,并在该包中指向openssl的config标志。仍然没有快乐。
还有一个编辑:似乎是OpenURI遇到了问题 - 无法找到让它了解证书位置的方法: - (
答案 0 :(得分: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