GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo compilar e instalar Python con soporte OpenSSL?

¿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
>>>

Nota: En versiones anteriores de Python, puede intentar usar 'hasattr ‘función como se muestra a continuación:

>>> 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

Nota: Por defecto, openssl se instalará en /usr/local/ssl . Si no quiere meterse con la instalación SSL existente, instálela en un directorio diferente.

$ 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

Nota: En caso de que haya instalado OpenSSL en una ubicación no estándar, debe cambiar 'SSL ‘ para hacer referencia a la ruta correcta en el código anterior.

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!


Linux
  1. Cómo instalar Python 2 y Python 3 en Fedora 35

  2. ¿Cómo instalar Python en Ubuntu 20.04 y 18.04?

  3. Cómo instalar Elasticsearch en Ubuntu 22.04 con SSL

  4. Cómo instalar Apache 2 con SSL en Linux (con mod_ssl, openssl)

  5. ¿Cómo compilar el archivo .c con OpenSSL incluye?

Cómo instalar Flask con Python 3 en Ubuntu 18.04

Cómo instalar Python 2 y Python 3 en CentOS 8

Cómo instalar FTP con SSL en Rocky Linux y AlmaLinux

Cómo instalar Python 2.7 en CentOS 7.1 o 6.7 con Anaconda

Cómo instalar Apache con Python Mod_wsgi en Debian 10

Cómo instalar y configurar WordPress con Ansible