OpenSSL est une boite à outils open source qui implémente SSL/TLS ainsi qu'une bibliothèque de cryptographie.
L'objectif de cette note est d'installer OpenSSL sur un serveur Linux.
Logiciels utilisés : OpenSSL 1.0.0
Système d'exploitation : Debian 5.0, Linux 2.6.34
1 – Pré-requis
Des outils de compilation : make et g++. Ainsi que gnupg pour la vérification du package. Etant sur Debian, j'utilise apt-get pour les récupérer :
$ apt-get install g++ make gnupg
Je vous invite à vous rendre sur cette page pour récupérer le lien de la dernière version stable d'OpenSSL: http://www.openssl.org/source/
Et on récupère le package qui va bien, ainsi que les fichiers nécessaires à la vérification du package (intégrité et authenticité) :
$ cd ~ $ wget http://www.openssl.org/source/openssl-1.0.0c.tar.gz $ wget http://www.openssl.org/source/openssl-1.0.0c.tar.gz.asc $ wget http://www.openssl.org/source/openssl-1.0.0c.tar.gz.sha1
2 – Vérifier le package
Avant d'aller plus loin, il faut s'assurer que d'une part le package n'est pas altéré, et d'autre part qu'il est authentique, c'est à dire qu'il n'a pas été détourné par un tiers.
Nous utiliserons deux outils pour cela : sha1sum pour l'intégrité et gnupg pour l'authenticité.
2.1 – Intégrité
L'intégrité du package se vérifie grâce au programme sha1sum, qui va comparer le hash SHA1 du package avec le hash SHA1 récupéré sur le site d'OpenSSL :
$ sha1sum openssl-1.0.0a.tar.gz | awk '{print $1}' | cmp - openssl-1.0.0a.tar.gz.sha1
Si pas de message, c'est bon !
2.2 – Authenticité
L'authenticité du package se vérifie grâce au programme gnupg, qui va vérifier la signature du package (fichier openssl*.asc) avec une des clés publique présente sur le site d'OpenSSL. On va par exemple prendre la clé F295C759. Le contenu est à récupérer ici (en commençant à ---BEGIN) : http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xA2D29B7BF295C759
$ vi openssl_pubkeyF295C759
Y mettre le contenu précédemment récupéré. On importe ensuite la clé et on vérifie le package :
$ gpg --import openssl_pubkeyF295C759 gpg: clé F295C759: « Dr Stephen Henson <shenson@drh-consultancy.co.uk> » n'a pas changé gpg: Quantité totale traitée: 1 gpg: inchangée: 1 $ gpg --verify openssl-1.0.0c.tar.gz.asc openssl-1.0.0c.tar.gz gpg: Signature faite le mar 01 jun 2010 15:42:23 CEST avec la clé RSA ID F295C759 gpg: Bonne signature de « Dr Stephen Henson <shenson@drh-consultancy.co.uk> » gpg: alias « Dr S N Henson <shenson@drh-consultancy.demon.co.uk> » gpg: alias « Dr Stephen Henson <stephen.henson@opennetworksecurity.com> » gpg: ATTENTION: Cette clé n'est pas certifiée avec une signature de confiance ! gpg: Rien ne dit que la signature appartient à son propriétaire. Empreinte de clé principale: D0 5D 8C 61 6E 27 E6 60 41 EC B1 B8 D5 7E E5 97
Le "ATTENTION" indique simplement que la clé utlisée n'est pas certifiée par un tiers de confiance. Si vous n'avez pas confiance, vous pouvez toujours contacter la personne par téléphone pour s'assurer avec elle que vous possédez bien sa clé … (sisi !)
3 – Compiler et installer
Une fois le package d'OpenSSL récupéré et vérifié on le décompresse dans le répertoire /usr/local/src :
$ tar xvzf openssl-1.0.0c.tar.gz -C /usr/local/src $ cd /usr/local/src/openssl-1.0.0c/
On peut maintenant configurer, compiler et installer
$ ./config --prefix=/usr/local/openssl $ make $ make install
Voilà, c'est installé !
4 – Modifier le PATH
Afin de pouvoir utiliser les commandes fournies par OpenSSL sans avoir à retaper toute l'arborescence, nous allons modifier la variable PATH des utilisateurs :
$ echo -e "openssl=/usr/local/ssl/bin\nPATH=\$PATH:\$openssl" >> /etc/profile $ . /etc/profile
5 – Tester
Pour le test on va juste afficher la version d'OpenSSL qui vient d'être installé :
$ openssl version OpenSSL 1.0.0c 2 Dec 2010
Et voilà pour cette note sur l'installation d'OpenSSL sous Linux.
Leave a Reply