2013-08-21 64 views
8

我在我的ruby应用程序中获得"certificate verify failed (OpenSSL::SSL::SSLError)",并决定是时候在我的Mac OS X(Mountain Lion)系统上更新旧的openssl。在OS X上安装openssl

我抓住了最新的来源从here,做平常

  • 的./configure darwin64-x86_64的-CC
  • 使
  • 化妆测试
  • 须藤使安装

......一切都完成而没有明显的错误。但我注意到,新的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/local/ssl/bin版本的符号链接替换/ usr/bin/openssl。这会起作用吗?

+0

检查我在这里使用的解决方案> https://stackoverflow.com/a/46179272/844890 – shaunthomas999

回答

9

要在本地拷贝过来的系统优先级副本,需要如果你想你启动一个shell只是把它添加到你的.bash_profile在此执行每次都将其添加到您的shell PATH变量

export PATH="/usr/local/ssl/bin:$PATH" 

你的主目录。

但是,这不会解决您的问题,因为需要针对新的OpenSSL重新编译Ruby(我们假设新OpenSSL附带的更新后的根证书文件将假设解决此问题)。我建议安装rvmrbenv并重建红宝石。请注意,这两种工具都希望您通过homebrew安装openssl。

+1

这对我来说已经够用了。 FWIW,我有我自己的构建脚本,将所有ruby可执行文件和库放在沙盒中,并且(作为一个哲学观点)永远不会触及系统文件,也不需要sudo。这是我自己的rvm版本,我想。 –