相关疑难解决方法(0)

SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败

我正在使用Authlogic-Connect进行第三方登录.运行适当的迁移后,Twitter/Google/yahoo登录似乎工作正常但Facebook登录引发异常:

SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)

开发日志显示

OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):
  app/controllers/users_controller.rb:37:in `update'
Run Code Online (Sandbox Code Playgroud)

请建议..

ruby ssl ruby-on-rails authlogic facebook-graph-api

279
推荐指数
17
解决办法
25万
查看次数

Heroku上的OpenSSL :: SSL :: SSLError

我正在尝试通过Facebook或Twitter对用户进行身份验证,让他们填写他们的信息,然后单击"保存"(从而创建用户记录).我在最后一步得到一个OpenSSL错误 - 点击保存后.这发生在Devise RegistrationsController #create方法中.

所以我在我的Rails应用程序中收到此错误,在Heroku上托管:

2012-07-28T18:25:13+00:00 app[web.1]: OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed)
Run Code Online (Sandbox Code Playgroud)

我见过很多解决方案,但都没有.以下是我尝试过的一些事情:

1)安装certified宝石

2)将Heroku宝石升级到v2.30,再次推动

3)这个:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, TWITTER_KEY, TWITTER_SECRET, {:client_options => {:ssl => {:ca_file => "/usr/lib/ssl/certs/ca-certificates.crt"}}}
  provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET, {:scope => "publish_actions,user_location,email", :client_options => {:ssl => {:ca_file => "/usr/lib/ssl/certs/ca-certificates.crt"}}}
end
Run Code Online (Sandbox Code Playgroud)

似乎有一个问题可能是这个证书文件实际上并不存在 - 我已经在几个地方看到了它,而且看起来这是Heroku的ca_cert文件的默认路径,但我可能是错的.

奇怪的是,这是我通过FB/Twitter进行身份验证之后发生的,并且我正在尝试创建用户的帐户.为什么会这样,我该如何解决/调试呢?真诚的困惑.

更新:我将此行添加到Omniauth初始化程序,现在它"正常".因此,我已经诊断出问题出在Omniauth上.但是,我还想进行SSL验证......这显然会留下安全漏洞.

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

openssl ruby-on-rails heroku omniauth

20
推荐指数
2
解决办法
2万
查看次数