编程语言
首页 > 编程语言> > php – 我的PayPal脚本突然停止验证SSL证书

php – 我的PayPal脚本突然停止验证SSL证书

作者:互联网

所以我的脚本(IPN侦听器,API调用等)工作正常,但突然开始抛出一个关于无法验证SSL证书的错误.这是我的错误(显示了PHP CURL)

SSL connect error

它为什么停止工作?

解决方法:

去年,PCI-DSS 3.1 came out和所有处理信用卡的人都发生了重大变化.具体而言,要求所有处理必须仅在TLS 1.1或更高版本上完成.原始日落日期是2016年6月30日,但那是postponed to June 30, 2018

The Payment Card Industry Security Standards Council (PCI SSC) is extending the migration completion date to 30 June 2018 for transitioning from SSL and TLS 1.0 to a secure version of TLS (currently v1.1 or higher).

现在,虽然这个缓解给你,程序员,你的前端有一些呼吸的空间,但它仍然意味着转移到TLS 1.1不是可选的(事实上,如果我是你,我会更快地移动)和一些中间卡处理将比这更早开始.事实证明,PayPal就是moving in regards to its websites之一

TLS 1.2 Upgrade

The most secure protocol for sharing information on the web today is Transport Layer Security (TLS) version 1.2. PayPal is enabling support for TLS 1.2 for all secure connections and in 2016 will start requiring its use. You will need to verify that your environment supports TLS 1.2 and if necessary make appropriate updates. PayPal is updating its services to require TLS v1.2 for all HTTPS connections on June 17, 2016. After that date, all TLS v1.0 and TLS v1.1 API connections will be refused.

现在,从理论上讲,你的旧脚本(如果你没有存储PayPal的公钥)应该运行得很好,但Sandbox(已经转移到这个)通信已经开始失败了.我发现,由于各种原因,一些通信层(特别是PHP中的CURL,一种与PayPal交谈的常见方式)无法再与PayPal正确协商.因此,你得到了神秘的错误

SSL connect error

谢谢CURL.这很有帮助……(不是)

那么我们如何解决这个问题呢?好吧,如果我们告诉CURL只使用TLS 1.2,您对PayPal的调用应该会重新开始工作而不会出现问题.如果您正在使用PHP和CURL,可以通过添加它来实现(如果$ch是您的CURL处理程序)

curl_setopt($ch, CURLOPT_SSLVERSION, 6); // Force TLS 1.2

使用Sandbox和Live调用PayPal时,此更改非常安全.

标签:paypal-ipn,php,ssl,curl,paypal
来源: https://codeday.me/bug/20191003/1850336.html