2011-07-13 38 views
0

所以我已经将应用从rails 2.2升级到了2.3.12,而我最后剩下的问题就是facebook连接集成的问题。使用oAuth2 gem和facebook的OpenSSL问题

我使用的oauth2宝石,这和好,我不断收到以下错误

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文件是存在的,并且 的权利都OK。

欢迎关于从何处开始调试的任何想法。

+0

什么'ruby -ropenssl -e'将OpenSSL :: OPENSSL_VERSION''打印在您的开发服务器上,它在生产中说了些什么? – emboss

+0

@emboss **开发** OpenSSL 0.9.8l 2009年11月5日 **生产** OpenSSL 0.9.8g 2007年10月19日 –

+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二〇〇七年十月一十九日

我不能保证这是该问题,但因为它现在正在工作,没有代码更改。我认为是。