关于php:PayPal IPN Listener – SSL 证书握手失败

PayPal IPN Listener - SSL Certificate Handshake Failure

运行 PHP 5.3.28 和 curl 7.30.0 (OpenSSL/0.9.8y


我现在有这个工作,方法如下:

  • 验证证书
  • 至少升级到 PHP 5.6.0 / OpenSSL 1.0.1
  • 保存并引用 cacert.pem
  • 1.验证证书

    使用 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); 验证证书。

    2. 至少升级到 PHP 5.6.0 / OpenSSL 1.0.1

    至少升级到 PHP 5.6.0,这似乎带来了 OpenSSL/1.0.1i。我认为至少需要 OpenSSL 版本 1.0.1 才能支持 TLS 1.2,这是 PayPal 需要的。

    3.保存并引用cacert.pem

    在本地保存来自 http://curl.haxx.se/docs/caextract.html 的 cacert.pem(在我的情况下保存到 c:\\cert),然后更新您用来引用 cacert.pem 的 PHP ini如此处所示。使用 ini 文件可以避免您在每次调用中都使用 curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__) . '\\cacert.pem');