【发布时间】:2011-08-21 05:35:43
【问题描述】:
我有一个 rails 网站 (reccr.com),它使用omniauth 通过多种不同的选项对用户进行身份验证,包括 Facebook 和 Twitter(使用 OAuth)以及其他一些(使用 OpenID)。然而,最近(我认为是在上周左右)尝试通过 Twitter 进行身份验证会引发
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed)
错误,但只有 Twitter 会这样做;所有其他服务都可以很好地进行身份验证。我一直在互联网上寻找解决方案,但我在该错误上找到的所有内容都解决了所有身份验证提供商都发生的情况,而我找不到任何内容适用于仅发生在一个特定提供商的情况。
据我所知(而且我是唯一的开发者),该网站没有发生任何改变,我认为任何会导致 Twitter 出现此问题的网站更改也会导致Facebook OAuth 身份验证存在同样的问题。
关于如何解决此问题的任何想法?我最初希望问题出在 Twitter 上,并且他们会在几天内解决它,但已经过去了大约一个星期,它仍在进行中,而且我还没有看到任何其他 Twitter 特定的关于此错误的投诉所以我开始怀疑毕竟是我。
编辑:好的,在发现 THIS 和 THIS 之后,我已经成功了。我正在尝试实施解决方案,在其中将:client_options => {:ca_file => '#{Rails.root}/config/ca-bundle.crt'} 添加到omniauth.rb 的行尾,我在其中声明Twitter 作为我的提供者之一。但是,当我这样做时,我在 lib/rack/builder.rb:54:ininitialize'` 处收到 wrong number of arguments (4 for 3) 错误。任何想法如何解决那个?
【问题讨论】:
-
您从哪里获得证书?编辑:我的错,你实际上是通过 SSL 连接的吗?什么时候在回调中抛出这个错误?
-
我不确定。我正在使用 OmniAuth 进行身份验证,所以很多都是为我处理的;我应该去哪里看?
-
暂时忽略这个,看看我的回答,看看能不能解决你的问题。
-
看起来我遇到的最后一个问题与这个类似:stackoverflow.com/questions/6044667/…
标签: ruby-on-rails twitter openssl omniauth