我的 PayPal 脚本突然停止验证 SSL 证书
Posted
技术标签:
【中文标题】我的 PayPal 脚本突然停止验证 SSL 证书【英文标题】:My PayPal script suddenly stopped verifying the SSL certificate 【发布时间】:2016-07-02 22:42:30 【问题描述】:所以我的脚本(IPN 侦听器、API 调用等)工作正常,但突然开始抛出无法验证 SSL 证书的错误。这是我的错误(显示 php CURL)
SSL 连接错误
为什么它停止工作了?
【问题讨论】:
【参考方案1】:去年,PCI-DSS 3.1 came out,所有处理信用卡的人都发生了重大变化。具体来说,所有处理都必须在 TLS 1.1 或更高版本上完成。最初的日落日期是 2016 年 6 月 30 日,但那是 postponed to June 30, 2018
支付卡行业安全标准委员会 (PCI SSC) 将迁移完成日期延长至 2018 年 6 月 30 日,以便从 SSL 和 TLS 1.0 过渡到安全版本的 TLS(当前为 v1.1 或更高版本)。
现在,虽然这种暂缓让程序员在前端方面有一些喘息的空间,但这仍然意味着迁移到 TLS 1.1+ 不是可选的(事实上,如果我是你,我会更早迁移)并且一些中间卡处理将比这更快开始移动。事实证明,PayPal 就是其中之一moving in regards to its websites
TLS 1.2 升级
当今在网络上共享信息的最安全协议是传输层安全 (TLS) 版本 1.2。 PayPal 正在为所有安全连接启用对 TLS 1.2 的支持,并且在 2016 年将开始要求使用它。您将需要验证您的环境是否支持 TLS 1.2,并在必要时进行适当的更新。 PayPal 将在 2016 年 6 月 17 日更新其服务,要求所有 HTTPS 连接使用 TLS v1.2。此后,所有 TLS v1.0 和 TLS v1.1 API 连接都将被拒绝。 p>
现在,理论上,您的旧脚本(前提是您没有存储 PayPal 的公钥)应该可以正常运行,但沙盒(已经移至此)通信已经开始失败。我发现,由于各种原因,某些通信层(特别是 PHP 中的 CURL,一种与 PayPal 交谈的非常常见的方式)无法再与 PayPal 进行正确协商。因此,你得到了神秘的错误
SSL 连接错误
感谢卷曲。这很有帮助... (不)
那么我们如何解决这个问题?好吧,如果我们告诉 CURL 只使用 TLS 1.2,您对 PayPal 的调用应该会再次开始工作而不会出现问题。如果您使用的是 PHP 和 CURL,您可以通过添加类似($ch
是您的 CURL 处理程序)来做到这一点
curl_setopt($ch, CURLOPT_SSLVERSION, 6); // Force TLS 1.2
此更改可完全安全地用于沙盒和实时调用 PayPal。
【讨论】:
我们不得不用不支持 TLS1.1 的旧 curl 版本升级旧服务器 - 底部很痛苦以上是关于我的 PayPal 脚本突然停止验证 SSL 证书的主要内容,如果未能解决你的问题,请参考以下文章
Perl PayPal IPN 侦听器返回“500 SSL 握手失败”消息
Easy_install 或 pip 安装错误:[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:579)]