OpenSSL est une bibliothèque cryptographique largement utilisée qui met en œuvre les protocoles SSL et TLS pour la communication sécurisée sur les réseaux informatiques. OpenSSL est utilisé par de nombreux programmes comme le serveur Web Apache, PHP, Postfix et bien d’autres. OpenSSL fournit un support pour divers algorithmes cryptographiques tels que les ciphers (AES, Blowfish, DES, IDEA etc.), les fonctions de hachage cryptographiques (MD5, MD4, SHA-1, SHA-2 etc.) et la cryptographie à clé publique (RSA, DSA, échange de clés Diffie-Hellman).
Dans ce tutoriel, je vais vous montrer étape par étape comment installer la dernière version stable d’OpenSSL à partir des sources sur les serveurs Ubuntu 18.04 et CentOS 7.6.
Ce que nous allons faire ?
- Installer les dépendances
- Télécharger le code source d’OpenSSL
- Installer OpenSSL
- Compiler et… Installer OpenSSL
- Configurer les bibliothèques de liaison
- Configurer le binaire OpenSSL
- Tester
Etape 1 – Installer les dépendances
La première étape, avant de pouvoir compiler la bibliothèque OpenSSL à partir des sources, est d’installer certaines dépendances du paquetage, notamment le paquetage ‘build-essential’ sur Ubuntu, ou le paquetage ‘Development Tools’ sur CentOS.
Sur Ubuntu
Mettre à jour le dépôt Ubuntu et installer les dépendances des paquets pour la compilation des logiciels en utilisant la commande apt ci-dessous.
sudo apt update
sudo apt install build-essential checkinstall zlib1g-dev -y
Sur CentOS
Installer les ‘Development Tools’ et certaines bibliothèques de paquets en utilisant la commande yum.
yum group install 'Development Tools'
yum install perl-core zlib-devel -y
Une fois l’installation terminée, passez à l’étape suivante.
Etape 2 – Télécharger OpenSSL
Dans ce tutoriel, nous allons installer la dernière version stable d’OpenSSL – OpenSSL 1.0.2o. Vous pouvez télécharger le code source à partir du site OpenSSL.
Allez dans le répertoire ‘/usr/local/src’ et téléchargez le code source d’OpenSSL en utilisant wget.
cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
Puis extrayez le fichier openssl.tar.gz, et allez dans le répertoire ‘openssl’.
tar -xf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
Le code source d’OpenSSL a été téléchargé.
Etape 3 – Installer OpenSSL
Avant d’installer la version personnalisée d’OpenSSL sur le système, vérifions la version installée en utilisant la commande ci-dessous.
openssl version -a
Voici mes résultats sur Ubuntu:
Et voici sur CentOS:
Nous allons remplacer la version ‘1.1.0g’ par la dernière version stable 1.0.2o.
Nous allons installer la nouvelle version d’OpenSSL dans le répertoire spécifique ‘/usr/local/ssl’, puis activer les bibliothèques de liaison d’OpenSSL, et configurer le nouveau PATH binaire pour OpenSSL.
Installer et compiler OpenSSL
Aller dans le répertoire téléchargé d’openssl ‘/usr/local/src/openssl’.
cd /usr/local/src/openssl-1.0.2o
Configurer et compiler OpenSSL avec les commandes ci-dessous.
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
make test
Attendre le processus de compilation d’OpenSSL.
Note:
- –prefix et –openssldir = Définir le chemin de sortie de l’OpenSSL.
- shared = forcer la création d’une bibliothèque partagée.
- zlib = activer la compression en utilisant la bibliothèque zlib.
Une fois le processus de compilation terminé, installez l’OpenSSL en utilisant la commande ci-dessous.
make install
OpenSSL est installé dans le répertoire ‘/usr/local/ssl’.
Configurer les bibliothèques de liaison
Puis, nous allons configurer les bibliothèques partagées pour OpenSSL. Le nouveau binaire OpenSSL chargera les fichiers de bibliothèque depuis le répertoire ‘/usr/local/ssl/lib’.
Allez dans le répertoire ‘/etc/ld.so.conf.d’ et créez le nouveau fichier de configuration ‘openssl-1.0.2o.conf’.
cd /etc/ld.so.conf.d/
vim openssl-1.0.2o.conf
Collez le répertoire du chemin de la bibliothèque openssl.
/usr/local/ssl/lib
Sauvegarder et quitter.
Maintenant rechargez le lien dynamique en utilisant la commande ci-dessous.
sudo ldconfig -v
Et vous verrez que les bibliothèques OpenSSL sur le répertoire ‘/usr/local/ssl/lib’ a été chargé.
Ubuntu:
CentOS:
Configurer le binaire OpenSSL
Nous allons remplacer le binaire openssl par défaut ‘/usr/bin/openssl ou /bin/openssl’ par la nouvelle version ‘/usr/local/ssl/bin/openssl’.
Sur Ubuntu 18.04 LTS
Sauvegarder les fichiers binaires.
mv /usr/bin/c_rehash /usr/bin/c_rehash.BEKUP
mv /usr/bin/openssl /usr/bin/openssl.BEKUP
Modifier le fichier ‘/etc/environnement’ en utilisant vim.
vim /etc/environment
Ajouter maintenant le nouveau répertoire binaire OpenSSL comme ci-dessous
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"
Enregistrer et quitter.
Recharger le fichier d’environnement et tester le nouveau PATH binaire mis à jour.
source /etc/environment
echo $PATH
Vérifiez maintenant à nouveau le fichier binaire OpenSSL.
which openssl
Vous obtiendrez le résultat suivant.
Le chemin binaire d’OpenSSL pour Ubuntu a été mis à jour.
Sur CentOS 7.6
Sauvegarder les fichiers binaires d’OpenSSL de CentOS.
mv /bin/openssl /bin/openssl.BEKUP
Créer de nouveaux fichiers d’environnement pour OpenSSL.
vim /etc/profile.d/openssl.sh
Coller la configuration ci-dessous.
#Set OPENSSL_PATHOPENSSL_PATH="/usr/local/ssl/bin"export OPENSSL_PATHPATH=$PATH:$OPENSSL_PATHexport PATH
Enregistrer et quitter.
Rendre le fichier openssl.sh exécutable.
chmod +x /etc/profile.d/openssl.sh
Chargez l’environnement OpenSSL et vérifiez le répertoire bin PATH en utilisant les commandes ci-dessous.
source /etc/profile.d/openssl.sh
echo $PATH
Vérifiez maintenant le fichier OpenSSL.
which openssl
Vous obtiendrez le résultat suivant.
Le chemin binaire pour OpenSSL sur CentOS a été mis à jour.
Etape 4 – Test
Tester la nouvelle version d’OpenSSL en utilisant la commande suivante.
openssl version -a
Le résultat sur Ubuntu.
Résultat sur CentOS.
.