【问题标题】:Paypal can not connect to Sandbox server. Return error 14077410 (sslv3 alert handshake failure)Paypal 无法连接到沙盒服务器。返回错误 14077410(sslv3 警报握手失败)
【发布时间】:2016-04-19 20:34:19
【问题描述】:

连接沙盒paypal的网站,直到最近才工作

它可以连接会卷曲

但是当它第二次发送请求时

显示错误

错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败

我尝试了一些在线参考并设置了它的 SSL SHA-256 证书,但它返回相同的错误。其他人建议在 curl 连接时切换到 TLS,但由于我处理过很多项目,因此可能不适合。

有什么建议可以将沙盒贝宝与 SSLv3 连接起来吗?感谢您的帮助。

【问题讨论】:

    标签: php ssl curl paypal sandbox


    【解决方案1】:

    您必须将 cURL 请求切换为使用 TLS 1.2 才能使用 PayPal 沙箱。我在同一条船上,不幸的是,没有办法绕过它。他们几天前刚刚在沙盒环境中激活了更改。

    https://devblog.paypal.com/upcoming-security-changes-notice/

    【讨论】:

    • 由于我使用paypal沙箱创建了很多项目,我想知道启用tls v1.2之后它是否可以工作,或者我必须修改库代码?我可以在服务器中默认设置到 Tls v1.2 的连接并在每个项目中全局使用吗?非常感谢
    • 嘿,您应该能够覆盖默认库配置。在 PHP 中你可以这样做curl_setopt($curl, CURLOPT_SSLVERSION,6); // 6 is TLS 1.2 你使用的是哪个平台?
    • 带有 omipay for php 的贝宝库 github.com/thephpleague/omnipay-paypal
    • 嗯,您可能实际上需要升级 openssl,我没有看到在omnipay 库中硬编码 SSL 版本的任何地方。 `sudo apt-get install openssl' 我当然会先在测试环境中尝试一下,以防万一。不想冒险破坏其他任何东西。
    • 谢谢,我发现它不需要“真正的” SSL 证书,但是支持 TLSv1.2 的服务器就可以了
    【解决方案2】:

    我将添加一些额外的信息,因为第一个答案并没有真正涵盖所有重点。

    Paypal 已开始推出一些升级,沙盒现在需要 TLS 1.2 来处理所有请求,并且 production systems will also require this from June 2016 onwards

    为了支持这一点,您需要:

    • 确保您的服务器具有 OpenSSL 1.0.1 或更高版本(此时添加了 TLS 1.2 支持)。
      openssl version 将显示您的版本号。

    • 一旦满足该条件,您可以在 PHP 代码中使用以下命令强制 SSLVERSION 使用 TLS 1.2:

      curl_setopt($curl, CURLOPT_SSLVERSION, 6);
      

    或者,如果您想要一个不那么 hacky 的解决方案,可以在握手期间自动启动正确的 SSL 版本,客户端和服务器在此比较可用密码以找到通用协议。您似乎正在使用 PHP + curl,因此您需要 PHP 5.5.19+ 和 curl 7.29+ 才能执行此操作。

    【讨论】:

      【解决方案3】:

      我有类似的错误 14077410 和 SSL3 问题。我将我的 PHP 服务器从 5.4 升级到 7.0,错误消失了。

      【讨论】:

        猜你喜欢
        • 2016-05-09
        • 1970-01-01
        • 2016-07-05
        • 2016-05-04
        • 1970-01-01
        • 2016-04-27
        • 1970-01-01
        • 2016-12-12
        相关资源
        最近更新 更多