另一个 Paypal Curl / SSL v3 握手错误 - SSL23_GET_SERVER_HELLO:sslv3 警报握手失败
Posted
技术标签:
【中文标题】另一个 Paypal Curl / SSL v3 握手错误 - SSL23_GET_SERVER_HELLO:sslv3 警报握手失败【英文标题】:Yet another Paypal Curl / SSL v3 Handshake Error - SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 【发布时间】:2016-05-02 09:38:21 【问题描述】:我知道有很多人在问这个问题,但迄今为止我读过的所有解决方案都没有对我有用。
具有 Paypal IPN 侦听器的站点在 curl 回发中失败。卷曲错误:错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败
我的 curl 选项如下所示:
curl_setopt($ch, CURLOPT_URL, 'https://www.sandbox.paypal.com/cgi-bin/webscr');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: www.sandbox.paypal.com'));
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
我的 curl 版本是 7.29.0。这是在基于 lighttpd 的服务器上。
我有一种感觉,这是因为 curl 没有“接受”我强制 tls 的尝试,但我不确定如何纠正。
【问题讨论】:
你升级OpenSSL后试过了吗? 我昨晚实际上做了一个完整的发行版升级,以及将 php 和 lighttpd 升级到最新版本。不幸的是,IPN 现在完全失败了——只是不断重试,没有 HTTP 错误代码。我将用这个问题开始一个新问题,因为我确信它完全不相关。一旦我克服了那个小问题,我会回到这里完成这个。 【参考方案1】:更新我的发行版,因此 OpenSSL 确实解决了问题。
【讨论】:
以上是关于另一个 Paypal Curl / SSL v3 握手错误 - SSL23_GET_SERVER_HELLO:sslv3 警报握手失败的主要内容,如果未能解决你的问题,请参考以下文章
PayPal cURL 选项(CURLOPT_SSL_VERIFYPEER 和 CURLOPT_SSL_VERIFYHOST)问题
PayPal TLS 测试 URL - PHP curl SSL 协议错误