php – MAMP SSL错误:“错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败”

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – MAMP SSL错误:“错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败”脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在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,它工作正常.我花了几个小时阅读并尝试了我在本网站和其他地方找到的所有其他解决方案,但没有一个能够奏效.有没有人见过这个问题?

更新:我在发布这个问题之前终于找到了解决问题的方法,但这是一个非常痛苦的过程,无论如何我都希望它可以帮助其他人避免这种令人毛骨悚然的灾难.我的解决方案如下.

解决方法

解决方案:

> brew install oPEnssl
>下载并打开最新的cURL
>在cURL目录中:

LDFLAGS="-L/usr/local/opt/openssl/lib" CPPFLAGS="-i/usr/local/opt/openssl/include" ./configure --PRefix=/Applications/MAMP/Library/

>制作
> make install
>重启MAMP
>在PHP中,在curl_init和curl_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 /,然后是通常的make和make install,重新启动MAMP,并松了一口气.

后来我发现我从其他网站抛出的一个cURL选项也是必要的,以避免不同的SSL错误(“SSL证书问题:无法获得本地颁发者证书”).将CURLOPT_SSL_VERIFYPEER设置为false可以解决这个问题.

脚本宝典总结

以上是脚本宝典为你收集整理的php – MAMP SSL错误:“错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败”全部内容,希望文章能够帮你解决php – MAMP SSL错误:“错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败”所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。