2013-08-21 199 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版本,我想。 –