此错误会在不同时间突然出现。这绝对是令人抓狂的,也是生产力下降的。
这是rvm ruby-1.9.3-p392
和Rails 3.2.13
以及Pow
。
在控制台中,此命令有效:
response = Net::HTTP.start(url.host, url.port, :use_ssl => url.scheme == 'https') {|http| http.request(request)}
完全相同的命令,当从控制器访问时,FAILS出现此错误:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
我已经看到关于错误的 众多 帖子和答案。有很多答案,因为使用的技术堆栈非常脆弱,因为许多移动部件和证书文件的许多不同位置。但是,我还没有看到为什么它在Rails控制台中有效,而它从Rails控制器失败了。有没有人见过这样的东西?
答案 0 :(得分: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
,因为没有可用的二进制文件。
我在几个不同的地方安装了OpenSSL(MacPorts和Homebrew家庭),这可能是我原来问题的一部分。
安装顺利完成。我在1.9.3下重新创建了我的原始gemset并创建了相应的.rvmrc
文件。
现在SSL_connect
错误消失了。