使用omniauth的/ auth / facebook / callback中的OpenSSL :: SSL :: SSLError

时间:2012-04-02 00:39:33

标签: ruby openssl sinatra omniauth

我正在使用omniauth处理Windows上的OpenSLL错误 我已经尝试过指定cacert.pem文件。它位于my_app_dir \ assets \ cacert.pem(从curl网站下载),

provider :facebook, APP_ID, SECRET, {:client_options => {:ssl => {:ca_file => File.dirname(__FILE__) << "assets\cacert.pem"}}}

不起作用。我仍然得到OpenSSL错误。我决定不需要我的Windows机器来验证,因为我将部署到Linux服务器,所以现在我想把它设置为不验证:

SCOPE = 'email,read_stream'

APP_ID = "2XXXXXXXXXXXXX"
SECRET = "4XXXXXXXXXXXXXXXXXXXXXXX"

use OmniAuth::Builder do
  provider :facebook, APP_ID, SECRET, {:client_options => {:ssl => {:verify => false}}}
end

我仍然得到错误。 在这一点上,我并不关心它是否使用证书(我更喜欢它),我需要让它工作,以便我可以克服这个障碍。

具体错误说:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

请尝试按照此链接中的说明操作: http://jimneath.org/2011/10/19/ruby-ssl-certificate-verify-failed.html

你最后必须在fix_ssl.rb进行微小的改动:

self.ca_file = Rails.root.join('lib/ca-bundle.crt').to_s

我希望这会有所帮助。