Ruby usa la versión incorrecta de openssl
rvm (1)
$ brew install openssl
Warning: openssl-1.0.2a-1 already installed
$ openssl version
OpenSSL 0.9.8zd 8 Jan 2015
$ ruby -ropenssl -e ''puts OpenSSL::OPENSSL_VERSION''
OpenSSL 1.0.1j 15 Oct 2014
$ rvm -v
rvm 1.26.11 (latest) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]
Veo muchas discrepancias entre las versiones de openssl. Homebrew piensa que está en 1.0.2a-1
, openssl mismo piensa que está en 0.9.8zd
, y Ruby cree que está en 1.0.1j
. ¡Ni siquiera sé si alguno de estos está realmente actualizado!
¿Cómo puedo resolver esta discrepancia y conseguir que Ruby use la versión correcta de OpenSSL? El hecho de que esté usando la versión incorrecta me impide usar API seguras.
Instalar OpenSSL con HomeBrew no lo vinculará inmediatamente como el OpenSSL predeterminado.
Primero, veamos qué versión estás usando (el 10 de julio, ''15 la última versión es 1.0.2d ):
openssl version -a
which openssl
ruby -r openssl -e ''puts OpenSSL::OPENSSL_VERSION''
Ahora, asegurémonos de actualizar OpenSSL a la última versión:
brew update
brew install openssl
brew unlink openssl
brew link --force openssl
Si ejecuta las comprobaciones iniciales nuevamente, debería ver los 2 primeros apuntando al OpenSSL recién instalado. Ruby probablemente aún apuntará al anterior ya que fue compilado con él.
Si está apuntando a la versión anterior, recompilemos a Ruby y apúntelo a la nueva. Y solo para asegurarnos de que usará la versión correcta, aprobemos el prefijo OpenSSL, aunque esto no debería ser necesario ya que vinculamos el OpenSSL de homebrew.
rvm get stable
rvm install ruby-2.1.6 --with-openssl-dir=`brew --prefix openssl`
(o rvm reinstall
si ya está usando 2.1.6)
Esto debería hacerlo.