适用于 PayPal 的 ActiveMerchant Poodle 补丁

Posted

技术标签:

【中文标题】适用于 PayPal 的 ActiveMerchant Poodle 补丁【英文标题】:ActiveMerchant Poodle patch for PayPal 【发布时间】:2014-12-16 10:41:14 【问题描述】:

我正在使用 Rails 3、ActiveMerchant 1.5.1 gem 和 PayPal express。由于最近我无法通过 PayPal 进行付款,因此继续收到此错误

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

我相信这与PayPal response to Poodle 有关。 ActiveMerchant 是否有任何补丁可以解决这些 PayPal 更改或一般的 SSL 3.0 漏洞?

【问题讨论】:

您可能需要将 SSL 连接更改为 TLS 。您可以在此处找到有关迁移到 TLS 连接的更多信息:ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL/SSL/… 在此处查看对话:github.com/Shopify/active_merchant/pull/1434 【参考方案1】:

感谢 Eshan,我发现 Net::Http 在连接时可以强制使用特定的协议。这就是我修补我的 ActiveMerchant 版本的方式

def configure_ssl(http)
  ...

  http.use_ssl = true

  http.ssl_version = :TLSv1  # poodle vulnarability fix

  ...
end

对于那些拥有更新版本的 ActiveMerchant 的人,我认为按照 Davidslv 的建议升级到 master 应该可行。

【讨论】:

【参考方案2】:

我们遇到了同样的问题,我们正在考虑使用 master 分支中的 activemerchant 而不是 ruby​​gems,因为有一个提交可以“修复”这个问题。

【讨论】:

你能给我们那个提交的链接吗? 是这个吗?github.com/Shopify/active_merchant/commit/… 我们为它添加了一个 PR,然后我们被告知这是一次性的,因为 Paypal 在某些配置中搞砸了,请在此处阅读更多信息:github.com/Shopify/active_merchant/pull/1434

以上是关于适用于 PayPal 的 ActiveMerchant Poodle 补丁的主要内容,如果未能解决你的问题,请参考以下文章

是否有适用于不同 Paypal IPN 的模式?

适用于 iOS 的 PayPal API - 允许吗?

适用于 iOS 的 PayPal SDK:恢复购买的商品

适用于 Ruby 的 PayPal REST SDK - 非全局配置

适用于类似亚马逊网站的 Paypal Masspay API

PayPal IPN 适用于单个购物车项目,但不适用于多个购物车项目