Magento - PayPal - SSLV3:当PayPal在12月3日停止使用SSL3时它会起作用吗?

我刚刚收到来自PayPal的电子邮件,说明由于Poodle漏洞,他们将从2014年12月3日起停止使用他们的支付API支持SSLV3。

只是想把它放在那里并询问是否有人知道这是否会直接影响Magento 1.9.0.1(最新)中的PayPal支付专业版/托管解决方案/快速支付集成?

如果是这样 - 任何人都知道如何在magento中修复标准的paypal模块?

谢谢!

15
在Stack Overflow上已经有几个关于此的线程。从本质上讲,您只需要使用cURL通过TLS连接到PayPal的API - 然而这一点就会发生。
额外 作者 Jon Galloway,
嗨Benmarks ..我确实搜索过这个,但不是真的在堆栈溢出站点,只是magento部分。我刚刚尝试寻找那些线程,看看我是否可以做更多的测试,但似乎无法找到它们,你能不能给我一些链接?谢谢!
额外 作者 bmdhacks,

7 答案

据我所知(如果我错了请纠正我),它实际上是您的托管公司(如果在共享平台上)或您自己,如果在VPS或专用服务器上,例如必须禁用SSLv3。你的网络主机应该这样做,如果他们还没有,如果你负责你自己的服务器,那么我相信你可以修改你的httpd.conf并添加以下内容;

SSLProtocol ALL -SSLv2 -SSLv3

这将禁用v2和v3,我相信TLS是标准的后备连接。

这是如果Apache配置所以如果你使用别的东西,那么代码可能会略有改变,但希望这对你有所帮助,但我也很感激听到其他人对此的意见。

2
额外
ahuh!感谢Tony - 我认为现在对我有意义。因此,它与Magento编码的方式无关,而是与托管公司配置使用哪种SSL(或不使用SSL)的方式有关。
额外 作者 bmdhacks,
托尼,你已经把它带回了前面。你提到的服务器端的SSLv3入站请求,没有服务器发起的出站请求。 PayPal电子邮件与后者有关。
额外 作者 Ramesh,
为了您的信息,您可以使用此站点测试您的Web服务器当前是否启用了SSLv2或SSLv3 foundeo.com/products/iis-weak-ssl-ciphers/test.cfm
额外 作者 Teecup,
是的几乎是loginid,赛门铁克也发布了一个检查工具。我在VPS上执行了上面描述的更改,现在它已经过了两次检查,所以我不应该有任何问题。
额外 作者 Teecup,
choco-loo,如果我的服务器发起出站请求,但没有启用SSLv3,那么它无法正确使用它?此外,浏览器和支付网关也停止了对SSLv3的支持,所以这不是一直停止的吗?我不相信Magento甚至使用了特定的协议,但我正在努力确保一切都安全。如果你有时间,有兴趣知道你的想法。
额外 作者 Teecup,
choco-loo谢谢你下面的更新,我可以评价它显然我还没有达到神奇的数字15!今天早上我正在读这个确切的东西,我的网站一切都很好:)非常感谢你的时间。
额外 作者 Teecup,

删除此代码:

<html>
<head>
</head>
<body>
<?php
$url = "ssl://www.sandbox.paypal.com";
$fp = fsockopen ($url, 443);
if (is_resource ($fp)) {
    echo "not affected";
}
else {
    echo "affected";
}
?>
</body>
</html>

在Magento站点根目录中名为paypal-tls-test.php的文件中。然后将浏览器指向 http://www.yoursite.com/paypal-tls- test.php的。该脚本尝试建立与不再支持SSLv3的PayPal沙箱的连接。如果它成功连接,那么这是一个很好的迹象表明你会好的。如果没有,你有工作要做。这当然假设实际协议在Magento某处没有硬编码(脚本检查服务器进行连接的能力。)

1
额外
poodlescan.com 说“此服务器支持SSL v3协议”时,此脚本会告诉我“未受影响”。 =>脆弱。
额外 作者 Polsonby,

它全部在CURL连接中。您需要检查的是您的服务器客户端卷曲库支持TLS(以便它可以回退)。

使用以下定义制作一个简单的PHP CURL脚本来强制TLS,

curl_setopt($curl_request, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);

如果成功,你无需担心。如果没有,您可能需要重新编译libcurl和openssl

0
额外

我添加了以下行:

curl_setopt($ curl_request,CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1);

进入测试PHP脚本。这是通过浏览器执行后的结果:

curl_setopt($ curl_request,CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1);

这个可以吗?我可以在12月3日之后使用我的curl 7.33.0版本和paypal吗? 我猜是!

问候 JJ

0
额外

据我所知,在我的客户端古老的Magento 1.4.1.1设置中,核心Paypal通信(通过curl)不强制任何特定协议,因此当Paypal支持SSLv3时curl应该使用TLS。

我想我会在12月3日确定。

0
额外
它现在应该已经使用TLS,但它很容易受到MITM的攻击,迫使它从TLS回滚到SSLv3,这已经被破坏了......在12/3,服务器端将拒绝回滚到SSL。如果可能的话,你想修改你的客户端不允许回滚现在提供保护,直到Paypal最终修复他们的一面。
额外 作者 Zoe.e.a.d.,

编辑Apache的httpd.conf并添加以下代码:

SSLHonorCipherOrder On
SSLProtocol -All +TLSv1

如果您有VPS或专用服务器,也可以通过WHM执行此操作:

Go to Service Configuration -> Apache Configuration -> Include Editor -> Pre Main Include

并添加以上两行。

然后,您可以连接到PayPal沙箱以测试您已禁用SSLv3,或者您可以添加Randall Hertzler在其答案中建议的代码。

我自己完成了上述工作并且工作正常。

0
额外

所以我的paypal客户经理今天打电话给我,告诉我我的网站正在使用ssl 3.0/poodle,并且在12月3日迁移后无法运行

他们指出了所有这些文件,基本上说如果我可以调用开发沙箱服务器并收到可接受的响应,那么一切都应该没问题。

我在代码和服务器配置中都没有改变。我在开发沙盒服务器上进行了测试,一切都很顺利。 Magento ver。 1.4.1.0

这是否意味着一切应该可以来到12月3日?

Note, all my websites still giving me the below messages when running through https://www.poodlescan.com/

“此服务器支持SSL v3协议。” “这个服务器支持SSL v2协议。你应该真的禁用这个协议。”

任何帮助将不胜感激。

0
额外
这意味着您的站点已经能够执行TLS,但是容易受到中间攻击的人的攻击,这会迫使您使用SSL,然后破坏数据流。当对方升级时你的东西不会破坏,但你也不安全。
额外 作者 Zoe.e.a.d.,