php curl 设置ssl版本

标签 php curl handshake sslv3

3 天后我无法连接到 paypal 沙盒。我发现他们可能取消了对 SSLv3 的支持。所以我试图通过设置更改我的 curl 请求中的 SSL 版本:

curl_setopt($curl, CURLOPT_SSLVERSION,1); # 1 = TLSv1

但它仍然给我同样的错误:

error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

知道为什么脚本仍在使用 SSLv3 吗?

我正在使用 php 5.5 和以下 curl 版本(目前要求我的托管商 [托管在 1&1 ] 升级到更新的版本)

curl 7.21.0 (i486-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6 协议(protocol): dict file ftp ftps http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp 特性:GSS-协商 IDN IPv6 大文件 NTLM SSL libz

最佳答案

问题是 PayPal 放弃了对 SSLv3、TLS 1.0 和 TLS 1.1 的支持,现在只支持 TLS 1.2,但构建的 OpenSSL 版本 cURL (0.9.8o) 不支持 TLS。

此时您所能做的就是希望主机可以将 OpenSSL、cURL 和 PHP 更新到更新的 (1.0+) 版本的 OpenSSL。

就目前而言,您的 cURL 客户端不支持 PayPal 要求的 TLS,除了更新 OpenSSL 之外别无他法。

关于php curl 设置ssl版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35131590/

相关文章:

php - 我可以使用 Laravel 的 `call` 方法在单元测试中发送原始 JSON 数据吗?

php - 如何从sql查询中获取对象数组

curl - 如何在 cURL post 请求中发送简单对象

Docker buildx - 构建失败并显示 'TLS handshake timeout' 而 docker pull 工作正常

javascript - 检索当前日期之后的项目

php 日历不显示一个月后的事件

performance - 抓取站点并为每个 URL 编译有效负载统计信息的工具?

Docker 中的 Docker - SSL 问题

javascript - 处理握手过程中的 websocket 发送而不丢失消息

c++ - https连接的asio服务器上的ssl错误