2011-05-25 35 views
6

我建立使用設計/ OmniAuth一個Rails 3應用程序,考拉,我發現了以下SSL錯誤使用考拉與設計及OmniAuth:獲取SSL錯誤在Rails 3應用程序

OpenSSL::SSL::SSLError in Users/omniauth callbacksController#facebook 
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed 

的導致此錯誤代碼是:

@graph = Koala::Facebook::GraphAPI.new(@token) 
@friends = @graph.get_connections("me", "friends") 

我使用的設計與OmniAuth進行認證,其中工程。然後,我將返回的Facebook令牌,並嘗試與Koala一起使用,如上所示。這是造成這個錯誤的原因。

可能值得注意的是,我最初收到與Devise & OmniAuth相同的錯誤。有關於這個錯誤的幾個主題,我能夠解決這個問題,通過建立我的配置/ initialisers/devise.rb用,

config.omniauth :facebook, APPID, APPKEY, {:client_options => {:ssl => {:ca_file => "/opt/local/share/curl/curl-ca-bundle.crt"}}} 

我猜測,我需要提供考拉類似的配置以便它知道在哪裏檢索本地ca_file。儘管如此,我無法在文檔中找到任何指示。任何想法如何做到這一點,或如何避免一般的錯誤?

我的開發環境是OSX。

+0

我放棄了MiniFB(https://github.com/victorcoder/mini_fb)作爲考拉的替代品,到目前爲止,我的運氣更好。它至少會返回數據而不會給出SSL錯誤。 – vansan 2011-05-25 17:55:25

回答

1

As I found on this thread你可以設置你的選擇環境中的文件(或您所使用的寶石,其中類)下面的選項:

Koala.http_service.ca_file = '/path/to/some/ca-certificate.crt' 
5

從考拉回購https://github.com/arsduo/koala

可以設置這在考拉初始化將設置這個選項全球

/config/initializers/koala.rb

Koala.http_service.http_options = { 
    :ssl => { :ca_path => "/etc/ssl/certs" } 
} 
相關問題