【问题标题】:Sandbox api curl (5) SSL connect error沙盒api curl(5) SSL连接错误
【发布时间】:2016-04-27 14:37:48
【问题描述】:

我已经通过 Laravel 为我们的网站完成了一个omnipay-paypal 实施。最近我无法使用我的任何沙盒帐户进行测试。我一直收到 SSL 连接错误。 NSS 错误 -12286。有人遇到这个问题吗?我检查了 PayPal 支持,他们已将 SSL 问题标记为已于 2016 年 1 月 19 日解决。

下面是对 api.sandbox.paypal.com 的 cli curl 调用和相应的错误。 有人遇到同样的问题吗?

curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
> -H "Accept: application/json" \
> -H "Accept-Language: en_US" \
> -u "xxx:xxxx" \
> -d "grant_type=client_credentials"
* About to connect() to api.sandbox.paypal.com port 443 (#0)
*   Trying 173.0.82.78... connected
* Connected to api.sandbox.paypal.com (173.0.82.78) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* NSS error -12286
* Closing connection #0
* SSL connect error
curl: (35) SSL connect error

【问题讨论】:

    标签: paypal paypal-sandbox paypal-rest-sdk


    【解决方案1】:

    您需要将--tlsv1.2 开关添加到curl 的某些版本。

    更高版本(例如 7.35.0)将自动正确地自动协商 TLS 1.2。如果提供此开关,某些版本(例如 7.19.7)将起作用,尽管 man curl 报告它是稍后添加的:

    --tlsv1.2 (SSL) Forces curl to use TLS version 1.2 when negotiating with a remote TLS server. (Added in 7.34.0)

    【讨论】:

      【解决方案2】:

      PayPal 更新了其沙盒环境,仅允许 TLS 1.2 连接,以提高安全性并为未来的 PCI 合规性做好准备。您可以在PayPal 2016 Merchant Security Roadmap Microsite 上找到有关更新的更多信息。

      如果您使用任何 PayPal SDK,您可以查看PayPal TLS Update repository,了解您可能需要哪些 SDK 或环境升级。请注意,在命令行上运行(例如 PHP CLI)与您的应用程序托管环境(例如 Apache 中的 PHP 模块)之间可能存在环境差异,因此请确保更新所有相关环境。

      【讨论】:

      • 谢谢!原来我的本地虚拟机正在使用过时的 libcurl。如果有人使用 Centos 版本 6.7 更新到 libcurl 版本 7.46 rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm yum -y update libcurl
      猜你喜欢
      • 2017-09-10
      • 2016-08-05
      • 2017-04-19
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 2014-06-25
      • 2013-09-19
      相关资源
      最近更新 更多