¿Su instalación de Python no es compatible con SSL? Debe volver a compilarlo después de editar Setup.dist archivo ubicado en el directorio fuente de Python. Veamos cómo hacerlo.
Antes de comenzar, verifique si su instalación existente de Python es compatible con OpenSSL como se muestra a continuación:
$ python
En el indicador de python, escriba 'importar ssl'
>>> import ssl
Si ve el error que se muestra a continuación, Python no es compatible con SSL.
$ python Python 2.4.3 (#1, Jan 9 2013, 06:47:03) [GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import ssl Traceback (most recent call last): File "<stdin>", line 1, in ? ImportError: No module named ssl >>>
>>> import socket >>> hasattr(socket,"SSL") False >>>
Si ve "Falso “, entonces Python no es compatible con SSL.
Cómo compilar Python desde el origen con compatibilidad con OpenSSL
Requisitos previos:
OpenSSL debería haberse instalado de manera predeterminada, pero si no tiene uno, instálelo como se muestra a continuación.
Instalar OpenSSL y sus paquetes de desarrollo como a continuación:
$ yum install openssl
$ yum install openssl-devel
(o)
Instalar OpenSSL desde la fuente:
$ wget http://www.openssl.org/source/openssl-1.0.2e.tar.gz
$ ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
$ make $ make test $ make install
La instalación de OpenSSL está lista. Ahora vamos a compilar Python.
Descargar código fuente de Python:
$wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
$tar xvzf Python-3.5.1.tgz
$vim Modules/Setup.dist
Busque “SSL ” y descomente el código como se muestra a continuación (en la versión 3.5, de la línea 203 a la 210):
_socket socketmodule.c # Socket module helper for SSL support; you must comment out the other # socket line above, and possibly edit the SSL variable: #SSL=/usr/local/ssl _ssl _ssl.c \ -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ -L$(SSL)/lib -lssl -lcrypto
Por ejemplo,
_socket socketmodule.c # Socket module helper for SSL support; you must comment out the other # socket line above, and possibly edit the SSL variable: SSL=/usr/local/openssl _ssl _ssl.c \ -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ -L$(SSL)/lib -lssl -lcrypto
Una vez hecho,
$ ./configure $ make $ make install
Comprobar Python para compatibilidad con OpenSSL
$/usr/local/bin/python3.5
En el indicador de Python, escriba "importar ssl ”
>>> import ssl
Si no ve ningún error, entonces Python es compatible con SSL. ¡Eso es!