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 后,请按照以下步骤操作:
点击 Homebrew 水龙头:
$ brew tap homebrew/dupes $ brew tap homebrew/versions $ brew tap homebrew/php
使用 openssl 安装curl:
$ brew install --with-openssl curl
使用新安装的curl 和 openssl 安装 PHP:
$ brew install --with-homebrew-curl --with-httpd24 php55
完成这些步骤后,运行以下命令:
$ 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中文网其他相关文章!