首页 >后端开发 >php教程 >为什么我的 Curl POST 到 HTTPS URL 失败并在 OSX 10.10 上出现 SSLRead() 错误?

为什么我的 Curl POST 到 HTTPS URL 失败并在 OSX 10.10 上出现 SSLRead() 错误?

Susan Sarandon
Susan Sarandon原创
2024-11-02 22:57:301054浏览

Why Does My Curl POST to HTTPS URL Fail with SSLRead() Error on OSX 10.10?

OSX 10.10 Curl POST 到 HTTPS URL 返回 SSLRead() 错误

当 PHP 使用使用 Apple 的 cURL 版本编译时,会出现此问题Yosemite 中的安全传输,并且目标 HTTPS URL 缺乏 SSLv3 支持 - 这是由于 POODLE 漏洞而采取的措施。

要验证这是否确实是原因,请执行以下命令:

$ php -i | grep "SSL Version"

您可能会遇到以下输出:

SSL Version => SecureTransport

要解决此问题,请安装使用利用 OpenSSL 而不是 SecureTransport 的 cURL 版本的 PHP 版本。您可以使用 Homebrew 无缝完成此操作。

  1. 安装 Homebrew(如果尚未安装)。更新它并确保您拥有 XCode 6.1 或更高版本以及最新的 XCode 命令行工具。
  2. 点击 Homebrew 存储库:

    • $ brew tap自制软件/欺骗
    • $brew tap自制软件/版本
    • $brew Tap自制软件/php
  3. 使用OpenSSL安装curl:

    • $brew install --with-opensslcurl
  4. 使用新安装的 opensslcurl 安装 PHP :

    • $brew install --with-homebrew-curl --with-httpd24 php55
    • 将 httpd24 替换为您的 Apache 版本(如果适用)。
  5. 配置 Apache/Nginx:

    • Apache: 附加 LoadModule php5_module /usr/local/opt/php55/libexec/apache2 /libphp5.so 到您的 httpd.conf 并重新启动 Apache。
    • Nginx(警告):

      • 启动 fpm:

        • mkdir -p ~/Library/LaunchAgents
        • cp /usr/local/opt/php55/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/
        • launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
  6. 安装必要的 PHP 扩展,例如 $brew install php55-mcrypt。
  7. 重新运行 php -i | grep "SSL Version" 命令来确认更改:

    • SSL Version => OpenSSL/1.0.2h

执行这些步骤后,SSLRead() 错误应该不再存在。

以上是为什么我的 Curl POST 到 HTTPS URL 失败并在 OSX 10.10 上出现 SSLRead() 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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