Actualice OpenSSL en OS X con Homebrew

81

Estoy usando MacOS X 10.7.5 y necesito una versión más nueva de OpenSSL debido a fallas en el protocolo de enlace . Hay varios tutoriales en Internet y probé lo siguiente:

brew install openssl
brew link openssl --force

Sin embargo, no funciona:

openssl version
OpenSSL 0.9.8r 8 Feb 2011

brew unlink openssl && brew link openssl --force
Unlinking /usr/local/Cellar/openssl/1.0.1e... 1139 links removed
Linking /usr/local/Cellar/openssl/1.0.1e... 1139 symlinks created

El problema de SVN tampoco está resuelto. ¿Algunas ideas? Preferiría no probar el método MacPorts porque puede interferir con Homebrew.

Joachim
fuente
1
Alégrate de que no funcionó. La versión 0.9.8r no sufrió el error HeartBleed. Si actualizó con éxito en marzo de 2013, cualquier certificado SSL que haya creado está comprometido y debe volver a escribirlo ahora. consulte heartbleed.com para conocer las versiones afectadas.
Houman
3
Esta pregunta parece estar fuera de tema porque no se trata de programación o desarrollo. Consulte ¿Qué temas puedo preguntar aquí en el Centro de ayuda? Quizás Super User o Apple Stack Exchange sería un mejor lugar para preguntar.
jww

Respuestas:

89

Si está utilizando Homebrew / usr / local / bin ya debería estar al principio $PATHo al menos antes de / usr / bin . Si ahora ejecuta brew link --force opensslen la ventana de su terminal, abra una nueva y ejecute which opensslen ella. Ahora debería aparecer opensslen / usr / local / bin .

Olaf Heinemann
fuente
2
Lo he instalado 1.0.2h_1, pero estoy exactamente en la misma situación, pero openssl version -atodavía me da OpenSSL 0.9.8zg 14 July 2015. ¿Alguna sugerencia?
Pmpr
84
Este no funciona porquebrew link --force openssl Warning: Refusing to link: openssl Linking keg-only openssl means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib
Timo
6
@TimoLehto ¿Pudiste resolver este problema? Estoy enfrentando el mismo problema y parece que no puedo encontrar una solución en ninguna parte
Tuhina Singh
3
@TimoLehto No tengo idea de si esto es una 'buena práctica' o incluso si es seguro hacerlo, pero siempre puede crear un enlace desde / usr / local / bin a / usr / local / opt / openssl / bin / openssl. Esto se puede hacer mediante el siguiente comando: ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/openssl. Para ser claros: no puedo prometerle que esta sea una forma segura o correcta de proceder.
brunodd
2
más información sobre este problema: stackoverflow.com/questions/38670295/…
ekkis
12

En una terminal, ejecuta:

export PATH=/usr/local/bin:$PATH
brew link --force openssl

Es posible que primero tenga que desvincular openssl si recibe una advertencia: brew unlink openssl

Esto asegura que estamos vinculando el openssl correcto para esta situación. (y no se mete con .profile)

Un consejo para la respuesta de @ Olaf y el comentario de @ Felipe. Algunas personas, como yo, pueden tener algunas vars PATH bastante desordenadas.

Marc Smith
fuente
9
Solo diceRefusing to link: openssl
Rogerdpack
12

instaló openssl en mac con brew pero no se encontró nada sobre /usr/local/bindónde se encuentran otros contenedores instalados de brew. Encontré mi nuevo openssl aquí:

/usr/local/opt/openssl/bin/openssl

Ejecútelo así:

/usr/local/opt/openssl/bin/openssl version

No quiero actualizar OS X openssl, mientras que algunas cosas del sistema operativo u otras aplicaciones de terceros pueden depender de la versión anterior.

Tampoco me importa un camino más largo que solo openssl

Escribiendo esto aquí para todos los Googlers que buscan la ubicación de openssl instalado por brew.

Lukas Liesis
fuente
6

Tuve este problema y descubrí que la instalación de la versión más nueva opensslrealmente funcionaba, pero mi PATHconfiguración estaba incorrecta; $PATHtenía la ruta de los puertos colocada antes de la ruta de preparación, por lo que siempre encontraba la versión anterior de openssl.

La solución para mí fue poner la ruta a brew(/ usr / local / bin) al frente de mi $PATH.

Para saber desde dónde está cargando openssl, ejecute which openssly observe el resultado. Será la ubicación de la versión que usa su sistema cuando se ejecuta openssl. Va a estar en otro lugar que no sea la brewruta de "/ usr / local / bin". Cambie su $PATH, cierre esa pestaña de terminal y abra una nueva, y ejecute which openssl. Debería ver una ruta diferente ahora, probablemente en / usr / local / bin. Ahora ejecute openssl versiony debería ver la nueva versión que instaló "OpenSSL 1.0.1e 11 de febrero de 2013".

GregT
fuente
5

Para responder a su pregunta sobre la actualización de openssl, seguí estos pasos para actualizar con éxito la versión que se encuentra en mi Mac a la versión 1.0.1e más reciente de openssl.

Seguí los pasos que se encuentran aquí: http://foodpicky.com/?p=99

Cuando llegue a los pasos para los comandos de terminal make y make install, asegúrese de usar sudo make y sudo make install (tuve que seguir el paso a paso dos veces porque lo hice sin sudo y no se actualizó).

Espero que esto ayude

Fresco
fuente
3
Para su información, a partir de hoy, se sabe que 1.0.1e (específicamente 1.0.1a-f) tiene una vulnerabilidad de seguridad grave. Futuros lectores, asegúrese de actualizar a al menos 1.0.1g heartbleed.com
SapphireSun
La versión anterior todavía se muestra para mí: stackoverflow.com/questions/22974590/…
quantumpotato
2
Menos uno : "... asegúrese de usar sudo make ..." - No se hace con privilegios. Solomakey luegosudo make installsi es necesario. También citó una referencia horrible. Reemplaza OpenSSL 0.9.8 de Apple/usrcon el 1.0.x actualizado. Eso es algo realmente malo porque no hay compatibilidad binaria.
jww
3

Tuve problemas para instalar algunos complementos de Wordpress en mi servidor local que ejecuta php56 en OSX10.11. Falló la conexión en la API externa a través de SSL.

La instalación de openSSL no resolvió mi problema. Pero luego descubrí que CURL también necesitaba ser reinstalado.

Esto resolvió mi problema con Homebrew.

brew rm curl && brew install curl --with-openssl

brew uninstall php56 && brew install php56 --with-homebrew-curl --with-openssl
De Potter Bart
fuente
1

En mac OS X Yosemite, después de instalarlo con brew, lo puso en

/ usr / local / opt / openssl / bin / openssl

Pero seguía recibiendo un error "Vincular openssl solo de barril significa que puede terminar vinculando contra el inseguro" al intentar vincularlo

Así que lo vinculé proporcionando la ruta completa así

ln -s /usr/local/opt/openssl/bin/openssl /usr/local/bin/openssl

Ahora muestra la versión OpenSSL 1.0.2o cuando hago "openssl versión -a", supongo que funcionó

Robert Sinclair
fuente
-8
  1. instalar puerto: https://guide.macports.org/
  2. instalar o actualizar el paquete openssl: sudo port install opensslosudo port upgrade openssl
  3. eso es todo, corre openssl versionpara ver el resultado.
Morteza Sepehri Niya
fuente
2
La pregunta era sobre Homebrew ... macports no es homebrew ... El OP afirma que prefieren no usar puertos mac.
Wade Williams
@WadeWilliams mac en la nueva versión no te permite actualizar opensslusando Homebrew, quiero decir que puedes instalarlo o actualizarlo usando Homebrewpero no puedes priorizarlo. Entonces, en lugar de actualizarlo usando Homebrew, puede actualizarlo usando macports y priorizarlo.
Morteza Sepehri Niya