在MAMP中更改openssl版本

25

OpenSSL 0.9.8在使用TLS 1.2无法工作

user@computer: /usr/bin/openssl version
OpenSSL 0.9.8zg 14 July 2015
user@computer: /usr/bin/openssl s_client -connect somesite.com:8443
CONNECTED(00000003)
write:errno=54

但是openssl 1.0.2可以与其一起使用:

user@computer: openssl version         
OpenSSL 1.0.2d 9 Jul 2015
user@computer: openssl s_client -connect somesite.com:8443
CONNECTED(00000003)
depth=2 C = US, O = "blah-blah" ...
....

我正在使用MAMP作为本地服务器。以下是phpinfo信息: phpinfo

如何在MAMP中更改openssl版本? 我知道这个问题已经有答案,但我仍然需要帮助。


我不使用Mac、MAMP和那些东西,但如果你需要openssl 1.0而他们仍然提供0.9甚至于当前的PHP版本,考虑停止使用MAMP。例如,Windows平台上的PHP 5.5+版本是与openssl 1.0一起提供的。我相信你可以从其他来源安装PHP,或者在虚拟机中安装开发环境。作为一个PHP开发人员,你应该能够从零开始安装基本的开发环境。 - kba
你找到解决方案了吗?如果是的话,能否请与我分享一下?我也需要使用TLS 1.2(因为iOS 9)... - SagittariusA
@LoryLory,不,我没有。 - MichaelPak
1
好的...不好意思。如果你还不知道的话,我可以给你一些建议,那就是使用最新版本的AMPPS,它具有apache 2.4和升级版的openssl...请看我的帖子:http://apple.stackexchange.com/questions/206901/using-mamp-3-4-how-do-i-upgrade-to-apache-2-4-and-openssl-1-0-2-to-meet-the-ats - SagittariusA
@LoryLory,哦!谢谢您! - MichaelPak
4个回答

13

6
这本应该是好消息,但我担心他们在嘲笑我们,因为我在我的MacBook Pro上更新了El Capitan的OpenSSL,并按照此答案(https://dev59.com/JZLea4cB1Zd3GeqP3ITJ?noredirect=1#comment56800515_34518502)更新了到新的openssl二进制文件的链接... (/usr/bin/openssl),但它没有起作用...无论是mamp还是apache仍然使用0.9.8... :( - SagittariusA
你能告诉我他们的电子邮件吗?我也想写信给他们。 - SagittariusA
@LoryLory,我也有同样的问题 =( - MichaelPak
5
关于MAMP 4.0的警告。我刚刚安装了预发布版本4,它完全清空了我的htdocs文件夹下的所有网站。一切都消失了。谢天谢地我备份了数据。请小心。 - VVV
3
不会删除,他们通常会将旧的MAMP重命名。 - user429620
显示剩余3条评论

5
我重新编译了MAMP正在使用的libcurl。现在它对我有效 :)
因此,让我们按照以下步骤进行操作:
1. 运行/Applications/MAMP/Library/bin/curl-config --version查看您拥有哪个版本。 2. 前往http://curl.haxx.se/download/并下载相应版本。 3. 使用./configure --prefix=/ Applications/MAMP / Library /进行配置。 4. make && make install 来源:http://dev.soup.io/post/56438473/If-youre-using-MAMP-and-doing-something

@FranciscoBueno - 起初这个方法很好用,但现在我收到了“libcurl不支持或禁用协议“https”的错误信息。显然,它应该配置为使用“--with-ssl”,但是它找不到openssl文件,导致配置失败。 - Evan Mattson
嗨,弗兰,我需要在配置中添加--with-ssl=/usr/local/Cellar/openssl/1.0.2c,以使用Homebrew安装的openssl版本,否则它仍将使用macOS提供的版本。 - peterlozano
-bash: ./configure: 没有那个文件或目录 - OZZIE
好的,现在我有“curl 7.49.1(x86_64-apple-darwin15.5.0)libcurl/7.49.1 OpenSSL/1.0.2h zlib/1.2.5 librtmp/2.3”,但是PHP中仍然没有TLS 1.2 - file_get_contents是否使用内部的libcurl? - Matthias Kleine
这对我有用。这是一个易于跟随的指南:http://www.grasmash.com/article/using-httpsssl-mamps-curl-osx对于MAMP,您可以将该php.ini行放入正在运行的PHP版本的php.ini中,即Applications/MAMP/bin/php/php7.0.0/conf/php.ini。 - John F

4

0

如果您希望继续使用MAMP 3版本,您可以按照以下步骤使其正常工作:

  1. 将当前的MAMP版本重命名为MAMPv3
  2. 下载MAMP 4版本,并在下载后将其重命名为MAMPv4
  3. 将MAMPv3重新命名为旧版MAMP
  4. 返回MAMPv4并进入“Library”目录,复制内部名为“OpenSSL”的文件夹
  5. 将此文件夹移动到旧版MAMP中并重新启动服务器。对我有效!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接