gpt4 book ai didi

php - MAMP SSL 错误 : "error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure"

转载 作者:可可西里 更新时间:2023-10-31 23:52:23 24 4
gpt4 key购买 nike

我在 OS X Yosemite 上使用 MAMP 在我的本地机器上开发一个网站。该网站是在 HTTPS 上运行的 API 的客户端应用程序。当我尝试从 PHP 调用 API 时,我不断收到此错误:

error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

相同的代码可以在服务器上运行,但站点已经在生产中,所以我需要能够创建一个单独的开发环境。无论我使用 cURL 还是使用 file_get_contents 调用 API,我都会得到完全相同的错误。我可以在命令行上使用 cURL 或在我的浏览器中加载 URL,它工作正常。我花了几个小时通读并尝试了我可以在本网站和其他地方找到的所有其他解决方案,但没有一个有效。还有其他人看到这个问题吗?

更新: 在发布这个问题之前,我终于在最后的努力中找到了解决方案,但这是一个非常痛苦的过程,所以我还是发布了它,希望它可以帮助其他人避免这场令人毛骨悚然的灾难。我的解决方案如下。

最佳答案

解决方法:

  1. brew install openssl
  2. 下载并解压最新的 cURL
  3. 在 cURL 源目录中:

    LDFLAGS="-L/usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include" ./configure --prefix=/Applications/MAMP/Library/
  4. 制作
  5. 安装
  6. 重启 MAMP
  7. 在 PHP 中,curl_initcurl_exec 之间:

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

解释:

寻找解决方案的路径始于 this site ,它描述了 MAMP 上的一个不同的 SSL 错误,并建议使用
重新编译新版本的 cURL--prefix=/Applications/MAMP/Library/ 覆盖 MAMP 使用的那个。我试过了,但没用。后来,有什么事让我研究了 cURL 编译选项,我注意到在编译时指定不同版本的 OpenSSL 的说明。我决定试一试(向自己保证这是最后一次尝试然后我会放弃)。我用 Homebrew 安装了一个最新的 OpenSSL 包,其有用的安装后信息说:

If you build your own software and it requires this formula, you'll need to add to your 
build variables:

LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include

这看起来与我在 cURL 编译选项中看到的内容类似,它为上述内容指定了正确的语法:

LDFLAGS="-L/usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include" ./configure

我在--prefix=/Applications/MAMP/Library/里加回来了,后面是通常的makemake install,重启MAMP,松了一口气。

我后来发现我从另一个网站输入的 cURL 选项之一对于避免不同的 SSL 错误(“SSL 证书问题:无法获得本地颁发者证书”)也是必要的。将 CURLOPT_SSL_VERIFYPEER 设置为 false 为我解决了这个问题。

关于php - MAMP SSL 错误 : "error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32431465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com