SSL错误无法更改为TLS。

8
我已经在一个高度依赖Paypal的网站上工作了相当长的时间。没有它,这个网站就毫无用处。我的时区是欧洲中部时间(CET),大约在早上1点左右,一切都很完美,我精心打磨代码和功能,一切都按照预期运行。在睡觉前,我进行了三重检查,确保一切正常。第二天早上醒来后,与Paypal有关的任何东西都不能正常工作。在展示实际代码和错误之前,先简单解释一下我正在使用的内容。我正在使用快速结账和Paypal自适应支付SDK。我在developer.paypal.com上创建了几个“虚拟”帐户,以模拟所有者和购买者之间的交互,因为我有一个场景,其中所有者给予另一个用户资金,反之亦然。无论如何,它们都运行得非常完美,现在它们都抛出了这个错误(在自适应支付SDK中,它告诉我哪一行代码有误,在快速结账中,由于它是通过文档完成的代码,它不会显示错误发生在哪个文件中,但是这是同样的错误):
'error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure'的意思是“错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3握手失败”。现在我看到了这篇文章https://devblog.paypal.com/poodle-ssl-3-0-vulnerability/,你已经完全禁用了SSL,我意识到问题实际上就在这里。您希望用户现在使用TLS,这完全没有问题。我三次检查了我的服务器是否启用了TLS,并且我已经(超过一百万次)更改了我的cURL配置设置以使用该TLS(因为我正在使用PHP),例如:curl_setopt($ch,CURLOPT_SSLVERSION,1);(在Express Checkout中看起来像这样,在自适应付款中只是一个关联数组,但两者实际上是相同的)。我还在您的建议中找到了更新我的API凭据的方法。我做到了。我去了paypal.com-> API,然后点击更新,这起作用了,但是我注意到在我拥有虚拟账户的developer.paypal.com帐户中没有发生任何变化。我应该手动更新这些吗?

编辑:

这封信是发送给Paypal支持团队的,当时我非常匆忙,无法再次编写整个内容,对此深感抱歉!问题已经得到解决,感谢任何花时间阅读它的人。

通过将CURLOPT_SSL_CIPHER_LIST => 'TLSv1'添加到我的PPHttpConfig.php文件中,问题已得到解决!:)

4个回答

18

尝试添加

CURLOPT_SSL_CIPHER_LIST => 'TLSv1'

将代码添加到您的PPHttpConfig.php文件中。我曾经遇到与您相同的问题,并花费数小时寻找解决方案。这对我起作用了。


非常有帮助的提示,在此处重复了你的答案:https://dev59.com/U18d5IYBdhLWcg3wxklq#26765281 和这里:https://dev59.com/fYTca4cB1Zd3GeqPA-ox#26764845 - philippe lhardy
我在哪里可以找到PPHttpconfig.php?我需要为我们的一个Magento网站做这个...提前感谢。 - Nazim
嗨,Nazim,请前往您的PayPal目录,例如/usr/lib/php5,然后应该是paypal/vendor/paypal/sdk-core-php/lib/PayPal/Core/PPHttpConfig.php。 - Fang Cao

2

这个错误出现的一个原因是PHP和OPENSSL的版本过旧,例如PHP 5.3.5将导致此错误。

解决方法是更新PHP(建议使用版本>=7)。


0

我也遇到了同样的问题。

我的服务器是旧版的Ubuntu 12.04。

  1. 检查证书 echo "列出ca-certificates.crt中的所有证书,按主题排序,检查是否存在VeriSign的'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. 我更新了openssl。

    sudo apt-get install openssl

  3. 只能通过这个指令更新curl。 http://pavelpolyakov.com/2014/11/17/updating-php-curl-on-ubuntu/ curl 7.47.1版本

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


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接