适用于 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 而不是 rubygems,因为有一个提交可以“修复”这个问题。
【讨论】:
你能给我们那个提交的链接吗? 是这个吗?github.com/Shopify/active_merchant/commit/… 我们为它添加了一个 PR,然后我们被告知这是一次性的,因为 Paypal 在某些配置中搞砸了,请在此处阅读更多信息:github.com/Shopify/active_merchant/pull/1434以上是关于适用于 PayPal 的 ActiveMerchant Poodle 补丁的主要内容,如果未能解决你的问题,请参考以下文章
适用于 Ruby 的 PayPal REST SDK - 非全局配置