¿Cómo actualizar OpenSSL en OS X?

120

Hoy en día se anunció en forma salvaje el heartbleed , el exploit OpenSSL, que permite a un atacante detectar y robar a escondidas las claves privadas del servidor (permitiéndoles a MitM y desencripta tus datos encriptados y roba contraseñas). Esto afecta a las versiones de OpenSSL, incluida la 1.0.1f, que es la versión en mi computadora Mavericks actualizada Mac (porque utilicé port / brew para instalar otro software que actualizó mi openssl sin darme cuenta ):

$ openssl version
OpenSSL 1.0.1f 6 Jan 2014

Esto demuestra que no estoy usando la versión de OpenSSL de Mavericks:

$ which openssl
/opt/local/bin/openssl

OpenSSL lanzó una solución hoy en 1.0.1g y me pregunto cómo puedo obtener esta versión fija instalada sobre mi versión actual. ?

    
pregunta dr jimbob 08.04.2014 - 06:25

4 respuestas

143

Por lo que vale, acabo de usar homebrew ( enlace ):

brew update  
brew install openssl  
brew link --force openssl 
openssl version -a  

Si aparece una de las versiones incorrectas (1.0.1a-f), puedes averiguar qué versión de openssl estás usando de esta manera:

which openssl

A menudo esto es de / usr / bin. Para asegurarse de obtener la versión actualizada, coloque un enlace simbólico en / usr / local / bin para apuntar a la openssl actualizada, como esto:

ln -s /usr/local/Cellar/openssl/1.0.1g/bin/openssl /usr/local/bin/openssl

Como alternativa a ese paso final, algunas personas reemplazan el openssl en /usr/bin con un enlace simbólico a /usr/local/Cellar/openssl/1.0.1g/bin/openssl (o cualquiera que sea su versión):

mv /usr/bin/openssl /usr/bin/openssl_OLD  
ln -s /usr/local/Cellar/openssl/1.0.1g/bin/openssl /usr/bin/openssl

Pero se sabe que esto causa problemas con algunas versiones más recientes de OSX. Es mejor insertar un nuevo enlace simbólico en / usr / local / bin, lo que debería tener prioridad en su ruta sobre / usr / bin.

    
respondido por el SapphireSun 08.04.2014 - 06:46
13

O para aquellos que usan puertos mac y no les preocupa mantener la versión

sudo port upgrade openssl

simples :-)

    
respondido por el mammix2 08.04.2014 - 18:39
6

Para resolver Extensión de solicitud ilimitada de OCSP (CVE-2016-6304) en macOS Sierra usando brew con

  1. Ajusta temporalmente los permisos en /usr/local para que brew pueda actualizar:

    sudo chgrp -R admin /usr/local
    sudo chmod -R g+w /usr/local
    
  2. Instala la versión actualizada de OpenSSL (es probable que desees 1.0.2i):

    brew install openssl
    
  3. Es posible que desee / necesite eliminar un enlace simbólico existente a openssl desde /usr/local/bin :

    rm /usr/local/bin/openssl
    
  4. Vuelva a vincular la versión de elaboración adecuada:

    sudo ln -s /usr/local/Cellar/openssl/1.0.2i/bin/openssl /usr/local/bin/openssl
    
  5. Restaure los permisos originales en /usr/local/bin :

    sudo chown root:wheel /usr/local
    
respondido por el brandonscript 22.09.2016 - 19:51
1

Quienquiera que no quiera usar brew o ports y solo quiera reemplazar la instalación predeterminada de OpenSSL 0.9.8 siempre puede deshabilitar la protección de la integridad del sistema al reiniciar en modo de recuperación (cmd + R) y emitir

csrutil disable

y luego compile openssl con

./config --prefix=/usr
make install

Reemplazó exitosamente OpenSSL en ElCapitan para mí y pude compilar el httpd 2.4 de curl y apache sin ningún problema directamente de las fuentes. El razonamiento detrás del método que algunos podrían considerar drásticos es que Apple ya no mantiene ElCapitan y que no se reciben actualizaciones por lo que es probable que no se rompa. En segundo lugar, evita que apuntes a la carpeta openssl en / usr / local para cada programa que compiles, lo que hace que la compilación sea más sólida.

    
respondido por el Захар Joe 16.05.2018 - 00:07

Lea otras preguntas en las etiquetas