2013-08-21 19 views
8

Stavo ricevendo "certificate verify failed (OpenSSL::SSL::SSLError)" nella mia app rubino e ho deciso che era ora di aggiornare il vecchio openssl sul mio sistema Mac OS X (Mountain Lion).installazione di openssl su OS X

Ho afferrato le ultime fonti da here e ha fatto la solita

  • ./Configure darwin64-x86_64-cc
  • fanno
  • make test
  • sudo make install

... e tutto completato senza apparente errore. Ma ho notato che il nuovo OpenSSL non ha sostituito il vecchio 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 

Sono riluttanti a pasticciare con importanti file di sistema per paura di rompere le cose esistenti. Qual è l'approccio consigliato? Sto pensando di sostituire/usr/bin/openssl con un link simbolico alla versione/usr/local/ssl/bin. Funzionerebbe?

+0

Controlla la soluzione che ho usato qui> https://stackoverflow.com/a/46179272/844890 – shaunthomas999

risposta

9

dare priorità la copia locale sul sistema di copia è necessario aggiungerlo alla vostra shell PATH variabile

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

Se si desidera che questo per eseguire ogni volta che si avvia una shell basta aggiungere al vostro .bash_profile in la tua home directory

Tuttavia, questo non risolverà il problema perché Ruby dovrebbe essere ricompilato sul nuovo OpenSSL (supponiamo che il file dei certificati di root aggiornato fornito con il nuovo OpenSSL possa risolvere ipoteticamente il problema). Mi consiglia di installare rvm o rbenv e ricostruire il rubino. Nota che entrambi questi strumenti preferirebbero installare openssl tramite homebrew.

+1

Questo è abbastanza buono per me. FWIW, ho i miei script di compilazione che mettono tutti i file eseguibili e le librerie di ruby ​​in una sandbox e (come punto di vista filosofico) non tocca mai i file di sistema, né richiede sudo. Suppongo che sia la mia versione di rvm. –