python macos ssl openssl version

Problema de referencia de versión de Python y OpenSSL en OS X



macos version (5)

¡Este problema casi me mata! Finalmente mi chico resolvió esto solo bajando la versión del paquete "paramiko" de 2. * a 1. * (Como 1.15.4 que configuré) puede resolver!

Tratando de resolver un problema de versión de OpenSSL que estoy teniendo.

Parece que tengo tres versiones diferentes de OpenSSL en mi Mac.

  1. Python 2.7.11 tiene la versión 0.9.7m:

    python -c "import ssl; print ssl.OPENSSL_VERSION" OpenSSL 0.9.7m 23 Feb 2007

  2. En la terminal:

    openssl version OpenSSL 1.0.1h 5 Jun 2014

  3. Recientemente compilado / instalado:

    /usr/local/ssl/bin/openssl OpenSSL> version OpenSSL 1.0.2h 3 May 2016 OpenSSL>

Recientemente actualicé mi OS X a 10.11.5. En el proceso, causó un problema para los scripts de Python que funcionaban anteriormente. A continuación se muestra el fragmento de mensaje de error:

Mensaje de error de Python:

You are linking against OpenSSL 0.9.8, which is no longer * RuntimeError: You are linking against OpenSSL 0.9.8, which is no longer support by the OpenSSL project. You need to upgrade to a newer version of OpenSSL.

(* - sí, así es como se ve el mensaje de error. Está recortado en el medio de la oración).

Cualquier recomendación para resolver este problema sería muy apreciada. Lo que me gustaría es que Python haga referencia a la versión 1.0.2h de OpenSSL frente a la versión obsoleta 0.9.7m.

He intentado instalar Python y OpenSSL muchas veces usando varias publicaciones / blogs como guía sin suerte.


NO RESUELTO HACKS, ninguno de los anteriores funcionó para mí. Terminé tomando un enfoque más simple y sin complicaciones ...

  1. Instale python 2.7.13 desde el sitio oficial, en realidad se instala como la python predeterminada, reemplazando el viejo sistema de python.

https://www.python.org/downloads/mac-osx/

  1. Actualización openssl después de la instalación de python.

sudo pip install --upgrade pyOpenSSL

  1. Tendrá que reinstalar todos sus módulos de Python (porque reemplazó a Python), le recomiendo usar pip. Después de unos minutos de instalación de pip, se actualizó mi OSX python predeterminado, tenía openssl actualizado y tenía todos mis módulos (incluido django en ejecución).

Puede instalar una versión de python que use una versión más nueva de openssl.

Primero puede preparar instalar una nueva versión de SSL abierto

brew update brew install openssl brew link --force openssl

Deberías ver una versión más nueva con

openssl version -a

Luego puede instalar una versión diferente de python que usa esa versión más nueva de openssl. Si usa pyenv , eso sería:

CFLAGS="-I$(brew --prefix openssl)/include" / LDFLAGS="-L$(brew --prefix openssl)/lib" / pyenv install -v 3.4.3

Puede encontrar más información sobre la instalación de una versión de python con una versión instalada de openssl aquí: https://github.com/yyuu/pyenv/wiki/Common-build-problems


Si está obteniendo You are linking against OpenSSL 1.0.0 , utilice export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1 variable de entorno para export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1 . Gracias @braddock


Use esto como una solución alternativa:

export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1

Esto parece ser una revisión reciente de la biblioteca de criptografía de materiales peligrosos. Puede ver el código fuente en:

https://github.com/pyca/cryptography/blob/master/src/cryptography/hazmat/bindings/openssl/binding.py#L221

La variable de entorno CRYPTOGRAPHY_ALLOW_OPENSSL_098 el error a una advertencia de desaprobación, si está dispuesto a correr el riesgo. También me encontré con esto en OS X el día anterior, por lo que algo cambió recientemente.