所以我已经将应用程序从 Rails 2.2 升级到 2.3.12,最后剩下的问题是 Facebook 连接集成问题。
我为此使用了 oauth2 gem,但我不断收到以下错误
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):
我尝试按照 oauth2 wiki 页面上的描述进行操作,结果却遇到了另一个错误,该错误已通过 fork 项目和调整代码来解决。 read here .
我的开发服务器上没有问题,但只在生产中出现。
我的客户端代码如下所示
def client
ca_file = File.join('/etc/ssl/cacert.pem')
@client ||= OAuth2::Client.new( 'app_id', 'app_secret', {
:site => {
:url=>'https://graph.facebook.com',
:ssl=>{
:verify => OpenSSL::SSL::VERIFY_PEER,
:ca_file => ca_file
}
},
:adapter => :NetHttp
})
@client
end
现在我已经确认了大约一百次,我的 cacert.pem 文件就在那里,而且 权利还可以。
欢迎提出关于从哪里开始调试的任何想法。
最佳答案
已解决
我将此站点移至运行 Debian 6.0 (sqeeze) 而不是 5.0 (etch) 的新服务器上,这解决了我的问题。我对此的看法是我获得了更新版本的 OpenSSL:
Debian 6.0:OpenSSL 0.9.8o 2010 年 6 月 1 日
Debian 5.0:OpenSSL 0.9.8g 2007 年 10 月 19 日
我不能保证这就是问题所在,但因为它现在无需更改代码即可正常工作。我想是的。
关于ruby-on-rails - 使用 oAuth2 gem 和 facebook 的 OpenSSL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6677404/