Magento-PayPal-SSLV3:当PayPal在12月3日停用SSL3时,它可以工作吗?


15

我刚刚从PayPal收到一封电子邮件,指出由于Poodle漏洞,他们将从2014年12月3日起停止使用其付款API对SSLV3的支持。

只是想把它放在那里,问是否有人知道这是否会直接影响Magento 1.9.0.1(最新)中的PayPal Payment Pro /托管解决方案/ Express Payments集成?

如果是这样-有人知道我如何在magento中修复标准的贝宝模块吗?

谢谢!


Stack Overflow上已经有一些关于此问题的线程。本质上,您只需要使用cURL通过TLS连接到PayPal的API,但是会发生这种情况。
Benmarks 2014年

嗨,Benmarks ..我确实对此进行了搜索,但实际上并没有在堆栈溢出站点上进行搜索,仅是magento部分。我只是尝试寻找那些线程,以查看是否可以进行更多测试,但似乎找不到它们,请您传递一些链接给我吗?谢谢!
loginid 2014年

Answers:


2

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

SSLProtocol ALL -SSLv2 -SSLv3

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

这是Apache配置,因此,如果您使用其他配置,则代码可能会稍有变化,但是希望这对您有所帮助,但是我也很高兴听到其他人对此提供的意见。


有关您的信息,您可以使用以下网站来测试您的Web服务器当前是否启用了SSLv2或SSLv3 foundeo.com/products/iis-weak-ssl-ciphers/test.cfm
Tony Pollard

hu!谢谢你的托尼-我认为这对我来说很有意义。因此,与Magento的编码方式完全无关,而与托管公司配置使用哪种SSL(或现在不使用SSL)的方式有关。
loginid 2014年

托尼,你已经回到了前面。您已经提到服务器端SSLv3用于入站请求,而不是服务器启动的出站请求。PayPal电子邮件与后者有关。
choco-loo 2014年

是的,几乎loginid,symantec也发布了检查工具。我在拥有的VPS上进行了上述更改,现在已粘贴了两个检查,因此我不应该有任何问题。
Tony Pollard 2014年

choco-loo,如果我的服务器启动了出站请求,但未启用SSLv3,那么它不能正确使用它吗?此外,浏览器和支付网关也不再支持SSLv3,因此,这是否会一路停止?我不相信Magento还是会使用特定的协议,但是我试图确保一切都安全。如果有时间,有兴趣知道您的想法。
Tony Pollard 2014年

1

删除此代码:

<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的某个地方进行硬编码(脚本检查您的服务器建立连接的能力。)


poodlescan.com说“此服务器支持SSL v3协议”时,此脚本告诉我“不受影响” 。=>脆弱。
PiTheNumber 2014年

0

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

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

curl_setopt($curl_request, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);

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


0

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

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


但是,它现在应该已经在使用TLS,但是,它很容易受到MITM的强制,使其不得不从TLS回滚到SSLv3,这已被破坏...在12/3,服务器端将拒绝回滚到SSL。如果有可能,您希望修复客户端以使现在不允许回滚来提供保护,直到Paypal最终修复了客户端。
Brian Knoblauch

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

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

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

我完全没有更改代码或服务器配置。我在开发沙箱服务器上进行了测试,一切顺利。Magento版本 1.4.1.0

这是否意味着12月3日一切正常?

请注意,当我通过https://www.poodlescan.com/运行时,我的所有网站仍然向我提供以下消息

“此服务器支持SSL v3协议。” “此服务器支持SSL v2协议。您应该真正禁用此协议。”

任何帮助将不胜感激。


这意味着您的站点已经可以执行TLS,但是容易受到中间人攻击,这会迫使您使用SSL并破坏数据流。当另一端升级时,您的东西不会损坏,但是您也不安全。
Brian Knoblauch 2014年

0

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

SSLHonorCipherOrder On
SSLProtocol -All +TLSv1

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

转到服务配置-> Apache配置->包含编辑器-> Pre Main Include

并添加以上两行。

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

我自己做了以上工作,效果很好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.