Mise en place d'un site sécurisé( Télécharger le fichier original )par Mouhamadou GAYE Université Cheikh Anta Diop de Dakar - Licence professionnelle 2010 |
MISE EN PLACENous allons sécuriser notre site de messagerie électronique nommé webmail cela suppose que nous avons déjà mis en place un hôte virtuel basé sur le nom nommé gaye.sn, ce dernier étant accessible sur le port 80 à l'adresse http://gaye.sn Activation du module SSL Pour que le protocole SSL puisse fonctionner avec le Serveur HTTP Apache2, il faut activer le module ssl avec la commande : puis recharger la configuration d'Apache2 faîtes : Création du certificat Nous travaillons sous ubuntu 9.10 Installer si nécessaire le package : apt-get install ssl-cert Pour générer un certificat auto-signé avec Ubuntu, il nous suffit de taper les commandes suivantes dans un terminal : Créer le certificat ssl : sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/localhost.pem On peut cependant créer son certificat SSL auto signé en installant le paquet openssl ? Il est aussi possible d'installer ca-certificates, mais ça ne semble pas utile dans le cas d'un certificat auto-signé. Plutôt que de repartir de l'ancien script, je propose sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out /etc/apache2/server.crt - keyout /etc/apache2/server.key Pour voir notre certificat sous format texte:/etc/apache2/server.crt Et pour le clé : -x509 -nodes donne le type de certificat voulu -days 365 indique la durée de validité (en jours) de votre certificat -newkey rsa:1024 demande une clé RSA de 1024 bits - d'après la doc apache, il est déconseillé de créer une clé plus grosse pour des histoires de compatibilité -out /etc/apache2/server.crt est le chemin de votre certificat -keyout /etc/apache2/server.key est le chemin de la clé privée Répondez alors aux questions posées : Country Name (2 letter code) [GB]:SN Entrez SN si vous êtes situé au SENEGAL et validez par la touche << Entrée » State or Province Name (full name) [Some-State]:SENEGAL Entrez SENEGAL et validez par la touche << Entrée » Locality Name (eg, city) []:DAKAR Indiquez ici le nom de votre ville. (exemple : DAKAR) et validez par la touche << Entrée » Organization Name (eg, company; recommended) []:LAGGA Indiquez le nom de votre organisation, de votre société. (Exemple : LAGGA) et validez par la touche « Entrée ». Si vous n'avez pas de société, vous pouvez mettre un nom fictif, le nom de notre site Web par exemple. Organizational Unit Name (eg, section) []:LTDSI Indiquez ici le nom de la section de votre organisation, de votre société. Si vous n'en avez pas, mettez la même chose que pour la question précédente. Common Name (eg, YOUR name) []: http://127.0.0.1/index.html/src/login.php Ici, il convient de faire particulièrement attention à ce que vous allez entrer. Vous devez indiquer le nom de domaine que vous désirez sécuriser. En ce qui nous concerne, il s'agit du domaine : gaye.sn. Nous indiquons donc gaye.sn et nous validons par la touche « Entrée ». ici http://127.0.0.1/index.html/src/login.php est indexé donc elle équivaut à mon nom de domaine www.gaye.sn Email Address []:gaye@ amdy-laptop.gaye.sn Ici, il s'agit d'indiquer l'adresse E-mail de l'administrateur. En ce qui nous concerne, il s'agit de : gaye@amdy-laptop.gaye.sn. Nous terminons bien entendu en validant par la touche « Entrée ». Configuration Apache2 Ajout de la directive Listen 443 Par défaut, Apache2 est configuré pour écouter sur le port 80. Il s'agit là de la configuration usuelle d'un Serveur Web. Cependant, le protocole SSL a besoin d'un port spécifique pour pouvoir fonctionner. Il s'agit du port 443. Nous allons donc rajouter une directive de configuration nommée Listen qui permettra d'indiquer à Apache2 qu'il doit aussi écouter sur le port 443. Pour ce faire, éditez le fichier /etc/apache2/ports.conf et rajoutez la ligne suivante : Listen 443 Création du fichier de configuration Ayant déjà configuré notre hôte virtuel gaye.sn un fichier de configuration nommé gaye doit exister dans le répertoire /etc/apache2/sites-available. Voici le contenu de ce fichier : Note : Il s'agit ici du contenu minimal d'un virtualhost. Pour sécuriser cet Hôte Virtuel, nous allons donc devoir modifier ce fichier en y ajoutant un hôte virtuel accessible sur le port 443, ce dernier contenant des directives particulières qui sont les suivantes : Directive SSLEngine : Cette directive permet d'activer le moteur SSL au sein d'un hôte virtuel, Elle peut prendre deux arguments -> on/off Directive SSLCertificateFile : Cette directive définit le certificat authentifiant le Serveur auprès des clients. L'argument est le chemin d'accès au certificat. En ce qui nous concerne, le certificat se trouve dans le répertoire /etc/apache2/ Directive SSLCertificateKeyFile : Cette directive définit la clé privée du Serveur utilisée pour signer l'échange de clé entre le client et le serveur. Elle prend en argument le chemin d'accès à la clé (fichier). Dans notre cas, la clé se trouve dans le répertoire /etc/apache2/. Par ailleurs, comme nous l'avons déjà fait pour notre hôte virtuel accessible sur le port 80, nous allons devoir rajouter une directive NameVirtualHost qui permettra que l'adresse nommée par le nom de notre hôte virtuel accessible sur le port 443 soit résolue correctement. Nous rajouterons donc cette directive (NameVirtualHost 127.0.0.0:443) au début de notre fichier de configuration. Enfin, afin que les clients puissent continuer d'accéder au site Web en tapant une url de type http et non https, nous allons modifier l'hôte virtuel accessible sur le port 80 en remplaçant la directive DocumentRoot par une directive de redirection. Voici donc le contenu de notre fichier une fois modifié : Reload du Serveur Http Apache2 Afin que les modifications que nous venons d'effectuer soient prises en compte, nous devons demander au Serveur Http Apache2 de relire ses fichiers de configuration. Pour ce faire, il suffit de taper la commande suivante dans un terminal : Pour accéder à notre site sécurisé il suffit après avoir configuré le fichier /etc/resolv.conf Taper sur un URL http://gaye.sn et vous obtenez : Pour obtenir plus d'information cliqué sur Détail techniques puis sur je comprends les risques pour obtenir ceci : Puis cliquer sur Ajouter une exception et vous obtenez : Et la pour voir le certificat cliquez sur le bouton Voir ... à droite : En Détails vous obtenez : Puis revenir sur confirmé l'exception de sécurité pour accéder à votre site de messagerie sécurisé : Et la vous vous connectez en toute sécurité |
|