【问题标题】:Problems with SSL dependent gems OAuth2 & ActiveMerchant依赖 SSL 的 gem OAuth2 和 ActiveMerchant 的问题
【发布时间】:2011-07-18 15:39:40
【问题描述】:


我的应用程序使用 OAuth2 gem (0.1.1) 连接到 Facebook,使用 ActiveMerchant gem (1.12.0) 连接到 PayPal。在当前的 Rails/Ruby 发行版(3.0.5、1.9.2)下,这两个 gem 在使用时都会抛出以下 OpenSSL::SSL::SSLError:

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

我做了一些挖掘,发现了两个补丁。第一个涉及将其作为“faraday.rb”(http://bit.ly/hZqNwQ)插入我的初始化程序文件夹。 OAuth2 (Facebook) 方面确实 可与此补丁配合使用。但是,ActiveMerchant (PayPal) 代码仍然会引发相同的 SSL_connect 错误。

我尝试的第二个补丁(未成功)是“always_verify_ssl_certificates”gem (http://bit.ly/dXmuUh)。我做了以下事情:(1) Gemfile 中的 gem 'always_verify_ssl_certificates' (2) 要求 ApplicationController 文件中的'always_verify_ssl_certificates'。但是,OAuth2 (Facebook) 和 ActiveMerchant (PayPal) 都会抛出以下 TypeError:

  • 参数错误(NilClass)! (预期的 一种 OpenSSL::SSL::SSLContext)

我的 OAuth2 Facebook 代码 AuthorizeController 和我的 ActiveMerchant PayPal 的链接(PaymentsController 现在在下面的 cmets 中。这是在遵循 Michael Bleigh 的 2010 OAuth2 指南和 2008 Cody Fauser ActiveMerchant 教程之后。任何帮助都很大非常感谢!此时我很困惑。

【问题讨论】:

标签: ruby-on-rails oauth paypal facebook-graph-api activemerchant


【解决方案1】:

不需要。经过一番痛苦的谷歌搜索,将以下内容放入 ApplicationController 修复它。希望这对某人有帮助! OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

【讨论】:

  • 这是一个非常糟糕的解决方案。 OAuth 2 完全依赖 SSL 来保证其安全性。这会因未能检查 SSL 证书的有效性而危及安全性。说真的,不要这样做,绝对不要向其他人推荐。
猜你喜欢
  • 2022-10-19
  • 2023-04-02
  • 2012-03-05
  • 2011-10-04
  • 2017-08-06
  • 1970-01-01
  • 2013-04-12
  • 2018-08-10
相关资源
最近更新 更多