所以我将应用程序从rails 2.2升级到2.3.12,我最后一个问题是facebook connect integration的问题。
我正在使用oauth2 gem,以及我一直收到以下错误
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):
我试图按照oauth2 wiki页面上的描述来结束anohter错误,这是通过分叉项目和调整代码来解决的。 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文件就在那里 权利还可以。
欢迎任何关于从哪里开始调试的想法。
答案 0 :(得分:1)
<强>解决强>
我将此站点移至运行Debian 6.0(sqeeze)的新服务器而不是5.0(蚀刻),这解决了我的问题。我对此的看法是我得到了更新版本的OpenSSL:
Debian 6.0:OpenSSL 0.9.8o 2010年6月1日
Debian 5.0:OpenSSL 0.9.8g 2007年10月19日
我不能保证这是问题所在,但因为它现在没有代码更改。我认为是。