Php 我的PayPal脚本突然停止验证SSL证书
因此,我的脚本(IPN侦听器、API调用等)工作正常,但突然开始抛出一个关于无法验证SSL证书的错误。这是我的错误(如图所示) SSL连接错误 为什么它停止工作了?去年,所有处理信用卡的人都发生了重大变化。具体而言,有一项规定,所有处理必须仅在TLS 1.1或更高版本上完成。最初的日落日期是2016年6月30日,但那是 支付卡行业安全标准委员会(PCI SSC)将迁移完成日期延长至2018年6月30日,以便从SSL和TLS 1.0过渡到TLS的安全版本(目前为v1.1或更高版本) 现在,虽然这一缓刑给了程序员一些喘息的空间,但它仍然意味着迁移到TLS 1.1+不是可选的(事实上,如果我是你,我会更快地移动),一些中间卡处理将比这更早开始移动。事实证明,贝宝就是其中之一 TLS 1.2升级 目前在web上共享信息最安全的协议是传输层安全(TLS)1.2版。PayPal正在为所有安全连接启用TLS 1.2支持,并将于2016年开始要求使用它。您需要验证您的环境是否支持TLS 1.2,并在必要时进行适当的更新2016年6月17日,贝宝正在更新其服务,要求所有HTTPS连接使用TLS v1.2。在此日期之后,所有TLS v1.0和TLS v1.1 API连接都将被拒绝。 现在,从理论上讲,您的旧脚本(前提是您没有存储PayPal的公钥)应该可以正常运行,但沙盒(已经移动到这个位置)通信已经开始失败。我发现,由于各种原因,一些通信层(尤其是PHP中的CURL,与PayPal交谈的一种非常常见的方式)无法再与PayPal正常协商。因此,您得到了一个神秘的错误 SSL连接错误 谢谢。这很有帮助。。。(不是) 那么我们如何解决这个问题呢?好吧,如果我们告诉CURL只使用tls1.2,那么你打给PayPal的电话应该可以正常工作了。如果您使用的是PHP和CURL,那么可以通过添加这样的代码来实现(其中,Php 我的PayPal脚本突然停止验证SSL证书,php,ssl,curl,paypal,paypal-ipn,Php,Ssl,Curl,Paypal,Paypal Ipn,因此,我的脚本(IPN侦听器、API调用等)工作正常,但突然开始抛出一个关于无法验证SSL证书的错误。这是我的错误(如图所示) SSL连接错误 为什么它停止工作了?去年,所有处理信用卡的人都发生了重大变化。具体而言,有一项规定,所有处理必须仅在TLS 1.1或更高版本上完成。最初的日落日期是2016年6月30日,但那是 支付卡行业安全标准委员会(PCI SSC)将迁移完成日期延长至2018年6月30日,以便从SSL和TLS 1.0过渡到TLS的安全版本(目前为v1.1或更高版本) 现在,虽然这一
$ch
是您的CURL处理程序)
这一变化对于沙箱和实时呼叫贝宝都是非常安全的。去年,所有处理信用卡的人都有了重大变化。具体而言,有一项规定,所有处理必须仅在TLS 1.1或更高版本上完成。最初的日落日期是2016年6月30日,但那是
支付卡行业安全标准委员会(PCI SSC)将迁移完成日期延长至2018年6月30日,以便从SSL和TLS 1.0过渡到TLS的安全版本(目前为v1.1或更高版本)
现在,虽然这一缓刑给了程序员一些喘息的空间,但它仍然意味着迁移到TLS 1.1+不是可选的(事实上,如果我是你,我会更快地移动),一些中间卡处理将比这更早开始移动。事实证明,贝宝就是其中之一
TLS 1.2升级
目前在web上共享信息最安全的协议是传输层安全(TLS)1.2版。PayPal正在为所有安全连接启用TLS 1.2支持,并将于2016年开始要求使用它。您需要验证您的环境是否支持TLS 1.2,并在必要时进行适当的更新2016年6月17日,贝宝正在更新其服务,要求所有HTTPS连接使用TLS v1.2。在此日期之后,所有TLS v1.0和TLS v1.1 API连接都将被拒绝。
现在,从理论上讲,您的旧脚本(前提是您没有存储PayPal的公钥)应该可以正常运行,但沙盒(已经移动到这个位置)通信已经开始失败。我发现,由于各种原因,一些通信层(尤其是PHP中的CURL,与PayPal交谈的一种非常常见的方式)无法再与PayPal正常协商。因此,您得到了一个神秘的错误
SSL连接错误
谢谢。这很有帮助。。。(不是)
那么我们如何解决这个问题呢?好吧,如果我们告诉CURL只使用tls1.2,那么你打给PayPal的电话应该可以正常工作了。如果您使用的是PHP和CURL,那么可以通过添加这样的代码来实现(其中,$ch
是您的CURL处理程序)
此更改可完全安全地用于对PayPal的Sandbox和实时呼叫。我们必须使用缺少TLS1.1-底部疼痛支持的旧curl版本升级旧服务器我们必须使用缺少TLS1.1-底部疼痛支持的旧curl版本升级旧服务器
curl_setopt($ch, CURLOPT_SSLVERSION, 6); // Force TLS 1.2