在OS X上安装OpenSSL

9
我在我的ruby应用程序中遇到了“certificate verify failed (OpenSSL::SSL::SSLError)”的问题,决定更新我的Mac OS X(Mountain Lion)系统上旧的openssl。我从这里获取了最新的源代码,并进行了以下操作:
./Configure darwin64-x86_64-cc make make test sudo make install
...一切都完成了,没有明显的错误。但我注意到新的openssl并没有取代旧的openssl:
$ which openssl
/usr/bin/openssl
$ /usr/bin/openssl version
OpenSSL 0.9.8x 10 May 2012
$ /usr/local/ssl/bin/openssl version
OpenSSL 1.0.1e 11 Feb 2013

我犹豫是否要修改重要的系统文件,以免破坏现有的东西。有什么推荐的方法吗?我正在考虑用符号链接替换 /usr/bin/openssl ,指向 /usr/local/ssl/bin 版本。这样可以吗?

请查看我在这里使用的解决方案> https://dev59.com/21sW5IYBdhLWcg3wTly8#46179272 - shaunthomas999
1个回答

10
为了使您的本地副本优先于系统副本,您需要将其添加到shell PATH变量中。
export PATH="/usr/local/ssl/bin:$PATH"

如果您希望每次启动shell时都执行此操作,请将其添加到您的主目录中的.bash_profile文件中。

然而,这并不能解决您的问题,因为Ruby需要重新编译以适应新的OpenSSL(我们假设随新的OpenSSL一起提供的更新的根证书文件可以解决此问题)。我建议安装rvmrbenv并重新构建Ruby。请注意,这两个工具都希望您通过homebrew安装openssl。


1
这对我来说已经足够好了。顺便提一下,我有自己的构建脚本,可以将所有的Ruby可执行文件和库放在一个沙盒中,并且(作为哲学观点)从不触碰系统文件,也不需要sudo权限。我想这就是我的版本管理器rvm吧。 - fearless_fool

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