OpenSSL es una biblioteca criptográfica ampliamente utilizada que implementa los protocolos SSL y TLS para la comunicación segura en 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, os 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 dependencias

El primer paso, antes de que podamos compilar la biblioteca OpenSSL desde el código fuente, es instalar algunas dependencias de paquetes, 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 librerías ‘Development Tools’ 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, vaya al siguiente paso.

Paso 2 – Descargar OpenSSL

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

Vaya al directorio ‘/usr/local/src’ y descargue 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 extraiga el archivo openssl.tar.gz, y vaya al directorio ‘openssl’.

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

El código fuente de OpenSSL ha sido descargado.

Paso 3 – Instalar OpenSSL

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

openssl version -a

Abajo están mis resultados en Ubuntu:

Y esto es en CentOS:

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 Librerías de Enlace de OpenSSL, y configuraremos el nuevo PATH binario para OpenSSL.

Instalar y compilar OpenSSL

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

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

Configurar y compilar OpenSSL con los siguientes comandos.

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

Esperar al proceso de compilación de OpenSSL.

Nota:

  • –prefijo y –openssldir = Establecer la ruta de salida del OpenSSL.
  • compartido = forzar la creación de una biblioteca compartida.
  • zlib = habilitar la compresión usando la librería zlib.

Cuando el proceso de compilación haya finalizado, instale el OpenSSL usando el siguiente comando.

make install

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

Configurar librerías de enlace

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

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

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

Pegue el directorio de la ruta de la biblioteca openssl.

/usr/local/ssl/lib

Guardar y salir.

Ahora vuelva a cargar el enlace dinámico utilizando el comando siguiente.

sudo ldconfig -v

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

Ubuntu:

CentOS:

Configurar el binario de OpenSSL

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

En Ubuntu 18.04 LTS

Haga 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

Edite el archivo ‘/etc/environment’ usando vim.

vim /etc/environment

Ahora añada 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"

Guarde y salga.

Recargue el archivo de entorno y pruebe el nuevo PATH binario actualizado.

source /etc/environment
echo $PATH

Ahora comprueba de nuevo el archivo binario de OpenSSL.

which openssl

Obtendrás el resultado que aparece a continuación.

La ruta binaria de OpenSSL para Ubuntu ha sido actualizada.

En CentOS 7.6

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

mv /bin/openssl /bin/openssl.BEKUP

Crear nuevos archivos de entorno para OpenSSL.

vim /etc/profile.d/openssl.sh

Pegar la configuración de abajo.

#Set OPENSSL_PATHOPENSSL_PATH="/usr/local/ssl/bin"export OPENSSL_PATHPATH=$PATH:$OPENSSL_PATHexport PATH

Guardar y salir.

Hacer ejecutable el archivo openssl.sh.

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

Cargue el entorno de OpenSSL y compruebe el directorio bin PATH utilizando los comandos que aparecen a continuación.

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

Ahora compruebe el archivo OpenSSL.

which openssl

Obtendrá el resultado que aparece a continuación.

La ruta binaria para OpenSSL en CentOS ha sido actualizada.

Paso 4 – Pruebas

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

openssl version -a

El resultado en Ubuntu.

Resultado en CentOS.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.