最近のOmniAuthでSSLの証明書の指定が効かなくなった件
#404: OpenSSL::SSL::SSLError using Twitter - Issues - intridea/omniauth - GitHub
OmiAuthでSSLを扱うときにこんな指定かできます。
Rails.application.config.middleware.use OmniAuth::Builder do provider :facebook, 'APP_KEY', 'SECRET', {:client_options=>{:ssl=>{:ca_path=>"#{::Rails.root}/config/certs/"}}} end
これが最近のOmiAuthでは効かないのです。いろいろ調べた結果、なぜか:ca_pathが:ca_fileになっていることが判明。つまりディレクトリではなく、ファイルを指定する必要があります。どうもバグっぽいけど詳細は不明です。以下のように直すとうまくいくみたいです。
{:client_options=>{:ssl=>{:ca_file=>"#{::Rails.root}/config/certs/cacerts.pem"}}}