【问题标题】:SSL error can not change to TLSSSL 错误无法更改为 TLS
【发布时间】:2015-01-01 18:34:21
【问题描述】:

我在一个高度依赖 Paypal 的网站上工作了很长时间。没有它,真的没用。

我的时间大约在凌晨 1 点左右(我在 CET 时区),一切都运行良好,我完善了代码和功能,它按应有的方式运行。我在睡觉前做了三次检查,确保一切正常。

我早上醒来,发现与 Paypal 没有任何关系。在向您展示实际代码和错误之前,先解释一下我正在使用的内容。我正在使用 Express Checkout 和 Paypal Adaptive Payments SDK

我在 developer.paypal.com 上创建了一些“虚拟”帐户,以模拟促进者(所有者)和买家互动,因为我有所有者向用户付款的场景,反之亦然。无论如何,他们都工作得很好,现在他们都抛出了这个错误(在 Adaptive Payments SDK 中,它告诉我哪一行代码是错误的,而在 Express Checkout 中,因为这是通过文档完成的代码,它没有显示在哪个文件中错误是但它是相同的错误):

'错误: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 和 Adaptive Payments 中的样子,它只是一个关联数组,但两者实际上是一样的)

我还在某个地方和您的建议中找到了实际更新我的 api 凭据的信息。我这样做了。我去了 paypal.com -> API,然后单击了更新,它起作用了,但后来我注意到在我的 developer.paypal.com 帐户上,我有几个虚拟帐户,没有任何改变。我应该手动更新这些还是什么?

编辑:

这是发送给 Paypal 支持的,我真的很着急,无法再写完整的东西,很抱歉!感谢任何真正花时间阅读它的人,问题已修复

在我的 PPHttpConfig.php 文件中添加 CURLOPT_SSL_CIPHER_LIST => 'TLSv1' 解决了这个问题! :)

【问题讨论】:

    标签: php ssl curl paypal


    【解决方案1】:

    尝试添加

    CURLOPT_SSL_CIPHER_LIST => 'TLSv1'
    

    到您的PPHttpConfig.php 文件。我和你有同样的问题,花了好几个小时才找到解决方案。这对我有用。

    【讨论】:

    【解决方案2】:

    搜索 Magento Error:14077410:SSL Routines:SSL23_GET_SERVER_HELLO:sslv3 Alert Handshake Failure 时出现此问题!如果你想解决这个问题,这里是最初解决问题的人的链接以及可下载的补丁:https://www.dwdonline.com/blog/fix-magento-error14077410ssl-routinesssl23_get_server_hellosslv3-alert-handshake-failure.html 这是同样的错误 - 只是在另一个软件包中。

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题。

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

      1. 检查证书 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. 我更新了 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

      【讨论】:

        【解决方案4】:

        此错误的原因之一是旧版本的 PHP 和 OPENSSL,例如PHP 5.3.5 会导致这个错误。

        解决办法,更新 PHP(推荐 >= 7)。

        【讨论】:

          猜你喜欢
          • 2018-04-06
          • 2023-03-14
          • 2020-05-03
          • 1970-01-01
          • 2017-05-25
          • 2018-08-12
          • 1970-01-01
          • 2019-03-18
          相关资源
          最近更新 更多