简体   繁体   English

SSL错误无法更改为TLS

[英]SSL error can not change to TLS

I have been working for quite some time on a website that highly depends on Paypal working properly on it. 我已经在一个网站上工作了很长一段时间,这个网站很大程度上依赖于Paypal正常工作。 Without it, it is really useless. 没有它,它真的没用。

Around 1 in the morning my time (I am at CET timezone) everything working perfectly, I polished up the code, functions and it was working as it should. 我早上大约凌晨1点(我在CET时区),一切都很完美,我完善了代码,功能,并且工作正常。 I made triple checks before I went to sleep that everything works as it should. 我睡觉之前做了三次检查,一切正常。

I wake up in the morning and nothing that has to do with Paypal actually works. 我早上醒来,没有任何与Paypal有关的事实。 A little bit of an explanation of what I am using before I show you the actual code and error. 在向您展示实际代码和错误之前,先对我使用的内容进行一些解释。 I am using Express Checkout and Paypal Adaptive Payments SDK . 我正在使用Express Checkout和Paypal Adaptive Payments SDK

I have a few "virtual" accounts that I made on developer.paypal.com in order to simulate facilitator (owner) and buyer interaction since I have scenario when owner gives money to ther user and visa versa. 我在developer.paypal.com上创建了一些“虚拟”帐户,以模拟协调人(所有者)和买家互动,因为我有业主向用户提供资金的情况,反之亦然。 Anyhow they both worked perfectly and now they both throw this error (in Adaptive Payments SDK, it tells me in which line of code is a mistake and in Express Checkout since that is code that is done via documentation it does not show in which file the error is but it is the same error): 无论如何,他们都工作得很好,现在他们都抛出了这个错误(在自适应支付SDK中,它告诉我哪一行代码是错误的,在Express Checkout中,因为那是通过文档完成的代码,它不显示在哪个文件中错误但是它是相同的错误):

'error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure' '错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败'

Now after I saw this post https://devblog.paypal.com/poodle-ssl-3-0-vulnerability/ that you just disabled SSL totally, I realized that the problem is in that actually. 现在我看到这篇文章https://devblog.paypal.com/poodle-ssl-3-0-vulnerability/ ,你刚刚完全禁用了SSL,我意识到问题就在于它。 You want your users to use TLS now which is totally fine. 您希望您的用户现在使用TLS,这完全没问题。 I triple checked that my server has TLS enabled and it does and I changed (for over a million times already) my config settings to use that TLS in cURL (since I am using PHP) by doing something like: 我三重检查我的服务器启用了TLS,它确实改变了(已经超过一百万次)我的配置设置使用cURL中的TLS(因为我正在使用PHP)通过执行以下操作:

curl_setopt($ch, CURLOPT_SSLVERSION, 1); (this is how it looks like in Express Checkout and in Adaptive Payments it is just an associative array , but it is really the same thing in both) (这就是Express Checkout和自适应支付中的样子,它只是一个关联数组,但它们两者都是一样的)

I also found somewhere and in your advices to actually update my api credentials. 我还在某处和你的建议中找到了实际更新我的api凭据。 I did that. 我做到了 I went to paypal.com -> API and then clicked update which worked, but then I noticed that on my developer.paypal.com account where I have a few of virtual accounts nothing has changed. 我去了paypal.com - > API,然后点击了更新工作,但后来我注意到在我的developer.paypal.com帐户中我有一些虚拟帐户没有任何改变。 Should I update those manually or what? 我应该手动更新这些还是什么?

Edit: 编辑:

This was sent to Paypal support and I was really in a hurry and could not write the entire thing again, so sorry about that! 这被发送到Paypal支持,我真的很匆忙,不能再写完整个东西了,很抱歉! Issue is fixed thanks to anyone who actually took time to read it. 问题由于任何人究竟是谁花时间来阅读。

The issue was fixed with the adding CURLOPT_SSL_CIPHER_LIST => 'TLSv1' to my PPHttpConfig.php file! 通过将CURLOPT_SSL_CIPHER_LIST => 'TLSv1'到我的PPHttpConfig.php文件来解决此问题! :) :)

Try add 尝试添加

CURLOPT_SSL_CIPHER_LIST => 'TLSv1'

to your PPHttpConfig.php file. 到您的PPHttpConfig.php文件。 I had the same issue with you and spent hours to find the solution. 我和你有同样的问题,花了好几个小时才找到解决方案。 This worked for me. 这对我有用。

One of the reasons for this error is older version of PHP and OPENSSL for eg PHP 5.3.5 will cause this error. 造成此错误的原因之一是旧版本的PHP和OPENSSL,例如PHP 5.3.5将导致此错误。

Solution, update the PHP (recomended >= 7). 解决方案,更新PHP(推荐> = 7)。

This comes up when searching for Magento Error:14077410:SSL Routines:SSL23_GET_SERVER_HELLO:sslv3 Alert Handshake Failure! 在搜索Magento错误时出现:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败! If you are trying to solve that, here is the link to the guy who originally solved the issue along with a downloadable patch: https://www.dwdonline.com/blog/fix-magento-error14077410ssl-routinesssl23_get_server_hellosslv3-alert-handshake-failure.html It's the same error - just in another software package. 如果您正试图解决这个问题,请点击此处链接到最初解决问题的人以及可下载的补丁: https//www.dwdonline.com/blog/fix-magento-error14077410ssl-routinesssl23_get_server_hellosslv3-alert-handshake- failure.html这是同样的错误 - 只是在另一个软件包中。

I've had the same problem. 我遇到了同样的问题。

My server is an old version of Ubuntu 12.04 我的服务器是Ubuntu 12.04的旧版本

  1. Check sertificates echo "All certificates in ca-certificates.crt, listed by subject, check for presence of VeriSign's 'Class 3 Public Primary - G5':" awk -v cmd='openssl x509 -noout -subject' '/BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep "G5" 检查sertificates echo "All certificates in ca-certificates.crt, listed by subject, check for presence of VeriSign's 'Class 3 Public Primary - G5':" awk -v cmd='openssl x509 -noout -subject' '/BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep "G5" echo "All certificates in ca-certificates.crt, listed by subject, check for presence of VeriSign's 'Class 3 Public Primary - G5':" awk -v cmd='openssl x509 -noout -subject' '/BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep "G5"

  2. I updated openssl. 我更新了openssl。

    sudo apt-get install openssl

  3. I could updated curl only by this instruction. 我只能通过这条指令更新curl。 http://pavelpolyakov.com/2014/11/17/updating-php-curl-on-ubuntu/ curl 7.47.1 version http://pavelpolyakov.com/2014/11/17/updating-php-curl-on-ubuntu/ curl 7.47.1版本

  4. And I updated libcurl. 我更新了libcurl。 http://juniway.blogspot.com/2015/12/curl-48-unknown-option-was-passed-in-to.html http://juniway.blogspot.com/2015/12/curl-48-unknown-option-was-passed-in-to.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM