首页 >后端开发 >php教程 >在 OSX 10.10 上向 HTTPS URL 发出 Curl POST 请求时如何解决'SSLRead() 返回错误 -9806”?

在 OSX 10.10 上向 HTTPS URL 发出 Curl POST 请求时如何解决'SSLRead() 返回错误 -9806”?

Susan Sarandon
Susan Sarandon原创
2024-10-31 08:28:02461浏览

How to Solve

OSX 10.10 Curl POST 到 HTTPS URL:解决 SSLRead() 错误

升级到 OSX 10.10 Yosemite 后,用户在以下情况下遇到错误对 SSL URL 执行 Curl POST 请求。错误信息“Error Number:56, Error String:SSLRead() return error -9806”表示SSL连接有问题。

经调查,发现此错误与版本有关cURL 在 Yosemite 下用 PHP 编译。默认情况下,PHP 使用 cURL 的 SecureTransport,由于 POODLE 漏洞而禁用 SSLv3 的网站可能会遇到问题。

要解决此问题,您需要安装使用 OpenSSL 而不是 SecureTransport 的 PHP 版本对于卷曲。这可以通过 Homebrew(macOS 的包管理器)来完成。安装 Homebrew 后,请按照以下步骤操作:

  1. 点击 Homebrew 水龙头:

    $ brew tap homebrew/dupes
    $ brew tap homebrew/versions
    $ brew tap homebrew/php
  2. 使用 openssl 安装curl:

    $ brew install --with-openssl curl
  3. 使用新安装的curl 和 openssl 安装 PHP:

    $ brew install --with-homebrew-curl --with-httpd24 php55
  4. 为 Apache 或 Nginx 配置 PHP。
  5. 安装您安装的任何 PHP 扩展require.

完成这些步骤后,运行以下命令:

$ php -i | grep "SSL Version"

您现在应该看到:

SSL Version => OpenSSL/1.0.2h

使用 OpenSSL对于 cURL,当您尝试向 HTTPS URL 发起 Curl POST 请求时,不应再出现 SSLRead() 错误。

以上是在 OSX 10.10 上向 HTTPS URL 发出 Curl POST 请求时如何解决'SSLRead() 返回错误 -9806”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn