Cómo instalar la última versión de OpenSSL desde el código fuente en Linux

OpenSSL es una biblioteca criptográfica muy utilizada que implementa los protocolos SSL y TLS para la comunicación segura en las redes informáticas. OpenSSL es utilizado por muchos programas como el servidor web Apache, PHP, Postfix y muchos otros. OpenSSL ofrece soporte para varios algoritmos criptográficos como cifrados (AES, Blowfish, DES, IDEA, etc.), funciones hash criptográficas (MD5, MD4, SHA-1, SHA-2, etc.) y criptografía de clave pública (RSA, DSA, intercambio de claves Diffie-Hellman).

En este tutorial, te mostraré paso a paso cómo instalar la última versión estable de OpenSSL desde el código fuente en servidores Ubuntu 18.04 y CentOS 7.6.

¿Qué vamos a hacer?

  1. Instalar las dependencias
  2. Descargar el código fuente de OpenSSL
  3. Instalar OpenSSL
    1. Compilar e instalar OpenSSL
    2. Configurar las bibliotecas de enlace
    3. Configurar el binario de OpenSSL
  4. Probar

Paso 1 – Instalar las dependencias

El primer paso, antes de que podamos compilar la biblioteca OpenSSL desde el código fuente, es instalar algunas dependencias del paquete, incluyendo el paquete ‘build-essential’ en Ubuntu, o el paquete ‘Development Tools’ en CentOS.

En Ubuntu

Actualiza el repositorio de Ubuntu e instala las dependencias de los paquetes para la compilación del software utilizando el comando apt que aparece a continuación.

sudo apt update
sudo apt install build-essential checkinstall zlib1g-dev -y

En CentOS

Instala las bibliotecas de ‘Herramientas de Desarrollo’ y algunos paquetes utilizando el comando yum.

yum group install 'Development Tools'
yum install perl-core zlib-devel -y

Una vez completada la instalación, pasa al siguiente paso.

Paso 2 – Descargar OpenSSL

En este tutorial, instalaremos la última versión estable de OpenSSL – OpenSSL 1.0.2o. Puedes descargar el código fuente desde el sitio de OpenSSL.

Ve al directorio ‘/usr/local/src’ y descarga el código fuente de OpenSSL utilizando wget.

cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz

Ahora extrae el archivo openssl.tar.gz y ve al directorio ‘openssl’.

tar -xf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o

Descargar el código fuente de OpenSSL

El código fuente de OpenSSL se ha descargado.

Paso 3 – Instalar OpenSSL

Antes de instalar la versión personalizada de OpenSSL en el sistema, vamos a comprobar la versión instalada mediante el siguiente comando.

openssl version -a

A continuación se muestran mis resultados en Ubuntu:

Compilar OpenSSL en Ubuntu 18.04

Y esto es en CentOS:

Compilar OpenSSL en CentOS 7

Sustituiremos la versión ‘1.1.0g’ por la última versión estable 1.0.2o.

Instalaremos la nueva versión de OpenSSL en el directorio específico ‘/usr/local/ssl’, y luego habilitaremos las bibliotecas de enlace de OpenSSL, y configuraremos el nuevo PATH binario para OpenSSL.

Instalar y compilar OpenSSL

Ve al directorio descargado de openssl ‘/usr/local/src/openssl’.

cd /usr/local/src/openssl-1.0.2o

Configura y compila OpenSSL con los siguientes comandos.

./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib

make
make test

Espera al proceso de compilación de OpenSSL.

Ten en cuenta:

  • –prefix y –openssldir = Establecer la ruta de salida del OpenSSL.
  • shared = obliga a crear una biblioteca compartida.
  • zlib = activar la compresión mediante la biblioteca zlib.

Una vez finalizado el proceso de compilación, instala el OpenSSL con el siguiente comando.

make install

hacer la instalación

OpenSSL se instala en el directorio ‘/usr/local/ssl’.

Comprueba la instalación de OpenSSL

Configurar las bibliotecas compartidas

A continuación, configuraremos las bibliotecas compartidas para OpenSSL. El nuevo binario de OpenSSL cargará los archivos de las bibliotecas del directorio ‘/usr/local/ssl/lib’.

Ve al directorio ‘/etc/ld.so.conf.d’ y crea un nuevo archivo de configuración ‘openssl-1.0.2o.conf’.

cd /etc/ld.so.conf.d/
vim openssl-1.0.2o.conf

Pega el directorio de la ruta de la biblioteca openssl.

/usr/local/ssl/lib

Guarda y sal.

Ahora vuelve a cargar el enlace dinámico utilizando el comando que aparece a continuación.

sudo ldconfig -v

Y verás que se han cargado las bibliotecas OpenSSL en el directorio ‘/usr/local/ssl/lib’.

Ubuntu:

ldconfig en Ubuntu 18.04

CentOS:

ldconfig en CentOS 7

Configurar el binario de OpenSSL

Sustituiremos el binario openssl por defecto ‘/usr/bin/openssl o /bin/openssl’ por la nueva versión ‘/usr/local/ssl/bin/openssl’.

En Ubuntu 18.04 LTS

Haz una copia de seguridad de los archivos binarios.

mv /usr/bin/c_rehash /usr/bin/c_rehash.BEKUP
mv /usr/bin/openssl /usr/bin/openssl.BEKUP

Edita el archivo ‘/etc/environment’ con vim.

vim /etc/environment

Ahora añade el nuevo directorio binario de OpenSSL como se indica a continuación

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"

Guarda y sal.

Vuelve a cargar el archivo de entorno y comprueba el nuevo PATH del binario actualizado.

source /etc/environment
echo $PATH

Ahora comprueba de nuevo el archivo binario de OpenSSL.

which openssl

Obtendrás el resultado que se indica a continuación.

Configurar el binario de OpenSSL en Ubuntu

La ruta binaria de OpenSSL para Ubuntu ha sido actualizada.

En CentOS 7.6

Haz una copia de seguridad de los archivos binarios de OpenSSL de CentOS.

mv /bin/openssl /bin/openssl.BEKUP

Crea nuevos archivos de entorno para OpenSSL.

vim /etc/profile.d/openssl.sh

Pega la configuración de abajo.

#Set OPENSSL_PATH
OPENSSL_PATH="/usr/local/ssl/bin"
export OPENSSL_PATH
PATH=$PATH:$OPENSSL_PATH
export PATH

Guarda y sal.

Haz que el archivo openssl.sh sea ejecutable.

chmod +x /etc/profile.d/openssl.sh

Carga el entorno de OpenSSL y comprueba el directorio bin PATH con los comandos que aparecen a continuación.

source /etc/profile.d/openssl.sh
echo $PATH

Ahora comprueba el archivo OpenSSL.

which openssl

Obtendrás el resultado que se indica a continuación.

Configurar el binario de OpenSSL en CentOS

La ruta binaria de OpenSSL en CentOS ha sido actualizada.

Paso 4 – Prueba

Prueba la nueva versión de OpenSSL utilizando el siguiente comando.

openssl version -a

El resultado en Ubuntu.

Resultado en CentOS.

La nueva y última versión estable de OpenSSL ha sido instalada desde el código fuente en Linux Ubuntu 18.04 y CentOS 7.5.

Referencia

También te podría gustar...