Devise/OmniAuth と Koala を使用して Rails 3 アプリを構築していますが、次の SSL エラーが発生します。
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 で Devise を使用して認証を実行していますが、これは機能します。次に、返された facebook トークンを取得し、上記のように Koala で使用しようとします。それがこのエラーの原因です。
Devise & OmniAuth で最初に同じエラーが発生したことは、おそらく注目に値します。このエラーに関するトピックがいくつかありますが、config/initialisers/devise.rb を次のように設定することで解決できました。
config.omniauth :facebook, APPID, APPKEY, {:client_options => {:ssl => {:ca_file => "/opt/local/share/curl/curl-ca-bundle.crt"}}}
ローカルの ca_file を取得する場所を認識できるように、Koala に同様の構成を提供する必要があると推測しています。ただし、ドキュメントでその方法を示すものは見つかりません。これを行う方法、または一般的にエラーを回避する方法についてのアイデアはありますか?
私の開発環境はOSXです。