php - SSL23_GET_SERVER_HELLO :sslv3 alert handshake failure Paypal adaptive payment

标签 php ssl curl paypal

下面是我的paypal自适应支付SDK的PPHttpConfig.php的curl配置,

 public static $DEFAULT_CURL_OPTS = array(
                CURLOPT_SSLVERSION => 4,
                CURLOPT_CONNECTTIMEOUT => 10,
                CURLOPT_RETURNTRANSFER => TRUE,
                CURLOPT_TIMEOUT        => 60,   // maximum number of seconds to allow cURL functions to execute
                CURLOPT_USERAGENT      => 'PayPal-PHP-SDK',
                CURLOPT_HTTPHEADER     => array(),
                CURLOPT_SSL_VERIFYHOST => 2,
                CURLOPT_SSL_VERIFYPEER => FALSE,
                CURLOPT_SSL_CIPHER_LIST => 'TLSv1',
        );

但是,出现错误

Type PayPal\Exception\PPConnectionException

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

enter image description here

最佳答案

OpenSSL 错误消息往往含糊而笼统。

导致此错误的最常见原因是

  • 服务器证书已过期
  • 服务器证书无效
  • 客户端和服务器无法协商双方都能接受的协议(protocol)级别或密码。

您的 OpenSSL 版本相对较新(但仍然过时/containing serious vulnerabilities)。我想 PayPal 不会让他们的证书过期。

出现此错误的不太常见的原因是

  • 您的数据库 CA 证书已过期
  • 找不到 CACert 数据库(您的 PHP 是否在 chroot 中运行?)
  • 您的 openssl.cnf 中有一些愚蠢的条目,或者找不到
  • 你坐在一个你不知道的 MITM 代理后面

您没有说明 PHP 在哪里运行,它在什么上运行,也没有说明您对机器有什么访问权限。如果它是一个 Linux 机器并且你有 shell 访问权限,你可能想看看当你 probe the server 时会发生什么。从命令行。

关于php - SSL23_GET_SERVER_HELLO :sslv3 alert handshake failure Paypal adaptive payment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35054948/

相关文章:

php - 如何从 MySQL 数据库记录为多级文件夹结构生成 PHP 数组

phpmailer 主体内的 JavaScript

google-app-engine - 如何为 google-app-engine 设置 SSL 模块?

macos - 通过 cURL 保存文件时有没有办法给出特定的文件名?

javascript - 使用nodejs服务器读取并打印文件内容?

php - PHP exec() 返回值是什么?

php - 将列字段添加到表中 - cakephp 3

wordpress - Web 托管提供商支持完整的 FTP 访问,但它安全吗?

python - 打开 urllib2 握手失败的页面

curl - 仅从 elasticsearch 查询返回 _source 数据