• Sécuriser Apache2 avec SSL

    Le SSL (Secure Socket Layer) est un protocole assurant une transmission sécurisée des données sur un site web.

    Le protocole SSL est destiné au cryptage des données. Il permet de vérifier l'authentification, la confidentialité et l'intégrité des données échangées.

    Tutoriel réalisé sous Ubuntu server 11.04

    Un certificat SSL (Secure Socket Layer) est un fichier spécial qui est installé sur un serveur web. Ce certificat permet de crypter les données émises par le serveur web afin d'en protéger la confidentialité

    Les certificats SSL sont le moyen le plus utilisé pour crypter des données entre un serveur web et un navigateur web 

     Il est possible d'obtenir des certificats certifiés par une autorité officielle mais leurs prix peut être élévés, et il sera plus interessant d'utiliser un certificat auto-signé.

    Certains navigateurs afficheront des messages d'avertissement informant que le certificat est auto-signé et qu'il n'est pas reconnu par une autorité officielle. il faudra alors passer l'avertissement, afin que cela fonctionne.

     Avant toute chose si le serveur HTTP Apache2 n'est pas installé :

    sudo apt-get install apache2

     

    Sécuriser Apache2 avec SSL

     (cliquer pour ouvrir l'image)

     

    Une fois Apache2 installé, on teste son fonctionnement depuis un navigateur.

     

    Sécuriser Apache2 avec SSL

    (cliquer pour ouvrir l'image)

     

    Mise en place du SSL.

    Il faut tout d'abord activer le module SSL à l'aide de la commande :

    sudo a2enmod ssl

     

    Sécuriser Apache2 avec SSL

     (cliquer pour ouvrir l'image)

     

    Le module SSL s'active alors.

     

    Sécuriser Apache2 avec SSL

     (cliquer pour ouvrir l'image)

     

    Une fois le module SSL activé, recharger la configuration d'Apache2 avec la commande :

    sudo /etc/init.d/apache2 reload

     

    Sécuriser Apache2 avec SSL

    (cliquer pour ouvrir l'image)

     

    Sécuriser Apache2 avec SSL

    (cliquer pour ouvrir l'image)

     

    Créer un certificat

    La création du certificat auto-signé s'effectue avec la commande suivante :

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

     

    Sécuriser Apache2 avec SSL

    (cliquer pour ouvrir l'image)

     

    Une fenêtre va s'ouvrir pour demander le nom d'hôte à utiliser dans le certificat SSL.

    Ici, j'ai laissé le nom par défaut mais il peut être composé d'hôte suivi du nom de domaine (apache2.com par exemple).

     

    Sécuriser Apache2 avec SSL

    (cliquer pour ouvrir l'image)

     

    Configurer Apache2 

    Se placer dans le dossier de configuration des sites apache avec la commande suivante :

    cd /etc/apache2/sites-available/

     

    Sécuriser Apache2 avec SSL

    (cliquer pour ouvrir l'image)

     

    Recopier la configuration par défaut pour la nouvelle configuration ssl avec la commande suivante :

    sudo cp default ssl

     

    Sécuriser Apache2 avec SSL

     (cliquer pour ouvrir l'image)

     

    Assigner le port ssl (port443):

    sudo sed -i '1,2s/\*:80/*:443/' ssl

     

    Sécuriser Apache2 avec SSL

    (cliquer pour ouvrir l'image)

     

    Ajouter les directives SSLEngine On et SSLCertificateFile /etc/ssl/private/localhost.pem à la configuration avec la commande suivante :

    sudo sed -i "3a\\\tSSLEngine On\n\tSSLCertificateFile /etc/ssl/private/localhost.pem" ssl

    *SSLCertificateFile : définit le certificat authentifiant le serveur auprès des clients.

    *SSLEngine On : active l'utilisation du moteur de protocole SSL / TLS.

     

    Sécuriser Apache2 avec SSL

     (cliquer pour ouvrir l'image)

     

    Activer la configuration du site SSL avec la commande suivante :

    sudo a2ensite ssl

     

    Sécuriser Apache2 avec SSL

     (cliquer pour ouvrir l'image)

     

    Maintenant on peut tester à nouveau le serveur Apache2 et vérifier que celui-ci écoute sur le port HTTPS.

    Le navigateur affiche un message d'avertissement informant que le certificat est auto-signé et qu'il n'est pas reconnu par une autorité officielle.

    Dans ce cas cliquer sur "je comprends les risques" puis sur "ajouter une exception"

    Dans la fenêtre qui apparaît, le navigateur demande de conserver cette exception de façon permanente et de confirmer l'exception de sécurité.

    On peut conserver ou non cette exception de façon permanente et une fois le choix effectué, on peut alors confirmer l'exception de sécurité.

     

    Sécuriser Apache2 avec SSL

    (cliquer pour ouvrir l'image)

     

    Sécuriser Apache2 avec SSL

     (cliquer pour ouvrir l'image)

     

    L'accès au serveur web en mode HTTPS fonctionne correctement.

     

    Sécuriser Apache2 avec SSL

     (cliquer pour ouvrir l'image)

     

    Il est également possible de vérifier le certificat en cliquant sur "Voir"

     

    Sécuriser Apache2 avec SSL

     (cliquer pour ouvrir l'image)

     

    Dans la partie Général, on peut voir entre autres le nom commun du certificat (renseigné lors de la création du certificat auto-signé) et la date de validité du certificat .

     

    Sécuriser Apache2 avec SSL

    (cliquer pour ouvrir l'image)

     

    Dans la partie Détails, on peut voir que le certificat utilisé est un standard de cryptographie PKCS#1 RSA 2048 bits (voir liens concernant la cryptographie)

     

    Sécuriser Apache2 avec SSL

    (cliquer pour ouvrir l'image)

     

    Sécuriser Apache2 avec SSL

     (cliquer pour ouvrir l'image)

     

    En savoir plus sur « la cryptographie »

    En savoir plus sur « les standards de cryptographie à clé publique »

     

    Ce tutoriel a permis de fournir accès sécurisé (https) à un site avec une configuration de base.

    Evidemment, il existe d'autres options pour sécuriser Apache2 ( pour le protéger d'une attaque par déni de service par exemple..).

    Cela pourra faire l'objet d'un prochain tutoriel....

    « Intégrer le SP1 à l'installation de Windows 7 avec RT Se7en LiteC'est parti pour le BTS.... »

    Tags Tags : , , , ,
  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :