0

这个错误只是在不同的时间不断弹出。这绝对是令人抓狂的,而且会削弱生产力。

这是rvm ruby-1.9.3-p392Rails 3.2.13, 和Pow

在控制台中,此命令有效:

response = Net::HTTP.start(url.host, url.port, :use_ssl => url.scheme == 'https') {|http| http.request(request)}

完全相同的命令,当从控制器访问时,失败并出现以下错误:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

我在 SO 上看到了很多关于该错误的帖子和答案。答案有很多,因为使用的技术堆栈非常脆弱,因为有许多活动部件和许多不同位置的证书文件。但是,我还没有弄清楚为什么这在 Rails 控制台中有效,而在 Rails 控制器中却失败了。有没有人见过这样的事情?

4

1 回答 1

0

为什么这在控制台中而不是在控制器中起作用仍然是一个谜。但是有这么多活动部件,我决定放弃原来的 rvm 安装并重新开始。

许多使用 Mac 环境已有一段时间的人过去都使用过 MacPorts。有些人,像我一样,已经转向 Homebrew。但我两者都维护,因为有些库我无法在 Homebrew 上获得,而只能从 MacPorts 获得。我尽量避免从源代码构建,因为我过去曾像这样陷入依赖地狱,我需要依赖比我更聪明的人。

我为解决这个问题所做的就是将 rvm 设置为专门使用 Homebrew,这是我以前从未做过的事情:

rvm autolibs homebrew

这首先需要 Homebrew 更新:

brew update

但它会告诉你是否需要这样做,或者自动为你做。

然后我做了:

rvm install 1.9.3

这是Ruby 1.9.3-p429从源代码构建的,因为没有可用的二进制文件。

我在几个不同的地方(MacPorts 和 Homebrew 之家)安装了 OpenSSL,所以这可能是我最初的问题的一部分。

安装顺利进行。我在 1.9.3 下重新创建了原始 gemset 并创建了适当的.rvmrc文件。

现在SSL_connect错误消失了。

于 2013-06-09T14:53:33.530 回答