OPENSSL – Sécurisez les communications

Cette procédure va couvrir l’utilisation d’OPENSSL. Elle est complémentaire à celle sur l’installation et la configuration d’un serveur apache2, que vous trouverez ici

Nous allons terminer la partie sécurisation du serveur apache en passant par la génération d’un certificat auto-signé à l’aide d’OpenSSL. Une autre méthode plus simple serait d’utiliser Easy-rsa mais ce n’est pas l’objectif.

Je pars du principe que vous avez réalisé la procédure apache, ou au moins, que vous avez installé apache2.

Pour générer un certificat, il nous faut openssl, que nous allons installer :

apt-get install openssl

Puis, on active le module ssl dans apache à l’aide de la commande :

a2enmod ssl

et on redémarre notre serveur :

service apache2 restart

 

Nous allons maintenant créer le certificat.

Dans un terminal :

make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/localhost.pem

Openssl nous pose alors quelques questions relatives aux informations qui seront contenues dans le certificat. LE NOM D’HOTE DOIT CORRESPONDRE AU NOM D’HOTE DE VOTRE SERVEUR, SANS QUOI, LE CERTIFICAT NE SERA PAS VALIDE.

Ce nom doit correspondre à votre nom d’hôte local si vous souhaitez que votre certificat fonctionne en local, et votre nom de domaine (ou adresse IP publique le cas échéant) si vous souhaitez que votre certificat fonctionne depuis Internet.

 

Maintenant, dirigeons-nous vers le dossier /etc/apache2/sites-available/

cd /etc/apache2/sites-available/

On sauvegarde le fichier default-ssl.conf

cp default-ssl.conf default-ssl.conf.bak

Et on édite default-ssl.conf :

nano default-ssl.conf

Dans ce fichier, on modifie la ligne suivante :

SSLCertificateFile

et on remplace le chemin présent par celui que nous avons utilisé plus haut lors de la création du certificat, soit /etc/ssl/private/localhost.pem. Ce qui nous donne :

SSLCertificateFile /etc/ssl/private/localhost.pem

On oublie pas de commenter la ligne suivante comme ceci:

#SSLCertificateKeyFile /etc/ssl/private/ssl-cert/snakeoil.key

On sauvegarde avec un CTRL + X et on valide.

Comme pour les hôtes virtuels, lorsqu’on à terminé la première configuration, il est nécessaire d’activer le site par le biais de la commande : a2ensite

Ici, nous allons effectuer la commande

a2ensite default-ssl

On termine par un

service apache2 reload

Voilà, il ne nous reste plus qu’à vérifier cela dans notre navigateur :

Pour ma part, ma machine s’appelle « magnus ». J’ai donc renseigné ce nom lors de la création du certificat.

Dans mon navigateur, je suis allé sur https://magnus et ai pu constater qu’une fenêtre m’informais que le certificat n’a pas été signé par une autorité reconnue.

On ajoute notre certificat dans la liste blanche de notre navigateur (on accepte que malgré que le certificat ne soit pas signé par une autorité reconnue). On peut désormais visiter le site sécurisé en https.