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?
- Instalar las dependencias
- Descargar el código fuente de OpenSSL
- Instalar OpenSSL
- Compilar e instalar OpenSSL
- Configurar las bibliotecas de enlace
- Configurar el binario de OpenSSL
- 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
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:
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 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
OpenSSL se instala en el directorio ‘/usr/local/ssl’.
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:
CentOS:
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.
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.
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.