首页  >  文章  >  后端开发  >  升级到 OSX 10.10 Yosemite 后如何修复“SSLRead() 返回错误 -9806”?

升级到 OSX 10.10 Yosemite 后如何修复“SSLRead() 返回错误 -9806”?

Susan Sarandon
Susan Sarandon原创
2024-11-02 10:23:02402浏览

How to Fix

已解决:升级到 OSX 10.10 Yosemite 后,Curl POST 到 HTTPS Url

如果您遇到错误“SSLRead() return error” -9806”升级到 OSX 10.10 Yosemite 后,您并不孤单。向 SSL URL 发出 Curl POST 请求时会出现此问题。

问题源于以下事实:php 目前正在使用在 Yosemite 下使用 Apple 安全传输的 cURL 版本进行编译。但是,这些请求的许多目标 URL 不再支持 SSLv3,该功能已因 POODLE 漏洞而被禁用。

解决方案

要解决此问题,您将需要安装一个使用 cURL 和 OpenSSL 的 php 版本,而不是安全传输。这是分步指南:

  1. 检查 SSL 版本: 运行命令“$ php -i | grep "SSL Version"”以确认 cURL 正在使用 SecureTransport .
  2. 安装 Homebrew: 如果尚未安装 Homebrew 来管理软件包。更新 Homebrew 并安装必要的水龙头:“$brew tap homebrew/dupes;brew tap homebrew/versions;brew tap homebrew/php。”
  3. 使用 OpenSSL 安装 Curl: "brew install - -with-openssl curl。”
  4. 安装 php 和 Openssl:“brew install --with-homebrew-curl --with-httpd24 php55。”
  5. 配置 Apache 或 Nginx:

    • Apache: 添加“LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so”到“/etc/apache2/httpd.conf”并重新启动 Apache。
    • Nginx: 按照启动 fpm 的警告说明进行操作。
  6. 安装 PHP 扩展: 安装任何必要的 php 扩展,例如“brew install php55-mcrypt”。
  7. 重新检查 SSL 版本: 运行“$ php -i |再次 grep "SSL Version"" 以确保使用 OpenSSL。

现在,当您尝试向 HTTPS URL 发起 Curl POST 请求时,不应再出现“SSLRead() 返回错误 -9806”。

以上是升级到 OSX 10.10 Yosemite 后如何修复“SSLRead() 返回错误 -9806”?的详细内容。更多信息请关注PHP中文网其他相关文章!

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