TP3 - Serveur HTTPS.pages - Intranet | IUT de Troyes
Transcription
TP3 - Serveur HTTPS.pages - Intranet | IUT de Troyes
MMI - SEMESTRE 4 CHIFFREMENT HTTPS Préparé pour : M4204 Préparé par : Patrice GOMMERY 15 mars 2016 Objectif Créer un Site Web accessible avec le protocole HTTPS Démarche Créer un site web virtuel sous Apache Créer et signer un Certificat Serveur pour notre site Web Capturer les trames avec tshark et constatez que le trafic http est bien chiffré. MMI - SEMESTRE 4 PREPARATION POUR LA CAPTURE DES TRAMES Afin de pouvoir surveiller le traffic de notre serveur sans être inondée de trames liées à la connexion ssh que nous utilisons, nous allons créer une nouvelle adresse IP sur notre serveur (sans supprimer la première !). Nous ajouterons simplement 50 au dernier octet de notre adresse IP. (Exemple : si votre IP est 172.16.48.10, la nouvelle adresse sera 172.16.48.60 ) Modifiez le fichier /etc/network/interfaces en ajoutant les lignes suivantes : auto eth0:0 iface eth0:0 inet static address 172.16.VM.(ID+50) netmask 255.255.0.0 Rebootez pour prendre en compte la modification. IMPORTANT : Pour vous re-connectez à votre serveur, utilisez maintenant la nouvelle adresse IP : ssh [email protected].(ID+50) CREATION DU SITE WEB Le site aura pour URL : http://crypto.domVMID.net Les pages du site seront stockées dans un dossier /var/www/crypto Le site doit contenir au moins une page index.html qui affiche un texte de plusieurs lignes en majuscules pour pouvoir le repérer facilement dans les trames émises. Cette page devra contenir la balise : <meta http-equiv="pragma" content="no-cache" /> afin d'empêcher le navigateur de la mettre en cache. Quelques indications pour la création du site : • • • • • • • • • Créez un dossier crypto sous /var/www Dans ce dossier, créez une page index.html qui affiche beaucoup de texte en majuscules Si nécessaire, installez apache2 Placez vous dans le dossier /etc/apache2/sites-available Dupliquez le fichier 000-default.conf en 002-crypto.conf Modifiez la Directive DocumentRoot du fichier 002-crypto.conf Désactivez le site par default , activez votre site crypto. "Reloadez" Apache2 pour prendre en compte les modifications. Testez avec votre navigateur sur la machine physique avec l'adresse : http://crypto.domVMID.net MMI SEMESTRE 4 PREMIERE CAPTURE DE TRAME Commencez par installer le paquet : tshark (validez les options par défaut) Lancez une capture de trame avec la commande tshark -x -f "host 172.16.VM.ID" (Attention, nous effectuons la capture de notre première addresse IP !!) Ouvrez votre navigateur avec l'adresse : http://crypto.domVMID.net Vous devez voir la totalité de votre page passé "en clair" sur le réseau. CREATION ET SIGNATURE DU CERTIFICAT ETAPE 1 : Création de la structure d'accueil des certificats pour Apache Créez un dossier /etc/apache2/ssl Ce dossier accueillera le certificat et la clé privée de notre serveur web. ETAPE 2 : Création du Certificat pour le site Web Placez-vous dans le dossier /etc/apache2/ssl A ) Commençons par créer la clé privée de notre serveur : openssl genrsa 1024 > crypto.key B) Créons ensuite une demande de certificat openssl req -new -key crypto.key > crypto.req Renseignez bien tous les champs (sauf les extras) et surtout le champ common name qui doit être : crypto.domVMID.net (le nom de votre site) (En cas d'erreur, supprimez le fichier .req et recommencez) C) Envoyons notre requête à l'autorité de certification (Comme dans le TP précédent, nous utiliserons le dossier /tmp) cp crypto.req /tmp ETAPE 3 : Signature du Certificat par l'autorité de Certification Nous allons ré-utiliser l'autorité de certification minica que nous avons créée dans le TP précédent. A) Placez-vous dans le dossier /minica B) export OPENSSL_CONF=/minica/openssl.cnf openssl ca -in /tmp/crypto.req Saisissez le mot de passe de la clé privée de votre autorité de Certification et répondez Y aux questions posées. Le certificat sera créé dans le dossier /minica/certs et portera le premier numéro de série disponible (vraisemblablement 02.pem, le serial 01 ayant été utilisé dans le TP précédent) C) Recopiez le certificat dans le dossier ssl d'apache et renommez-le crypto.crt cp /minica/certs/02.pem /etc/apache2/ssl/crypto.crt ATTENTION : 02.pem est un exemple, vérifiez le numéro de votre certificat dans le dossier /minica/certs CHIFFREMENT DU SITE WEB ETAPE 1 : Activation de SSL sur apache Activer le module SSL sur apache2 (a2enmod ssl, puis service apache2 restart) Vérifiez que le certificat du serveur web (crypto.crt) et sa clé privée (crypto.key) sont bien présents dans le dossier /etc/apache2/ssl (Dans le cas contraire, relisez les étapes précédentes) Pour plus de sécurité, vous pouvez modifier les permissions sur le fichier .key avec un chmod 400 ETAPE 2 : Configuration du Site en HTTPS Vous devez modifier votre fichier de configuration pour qu'il contienne deux parties : < VirtualHost 172.16.VM.ID:80> <-- Ligne à Modifier ServerName crypto.domVMID.net ServerAdmin [email protected] DocumentRoot /var/www/crypto <-- Ligne à ajouter <-- Ligne à Modifier Redirect / https://crypto.domVMID.net <-- Ligne à ajouter .... (Ne supprimer pas le reste des directives) </VirtualHost> Tout le reste est à ajouter en fin de fichier : <VirtualHost 172.16.VM.ID:443> ServerName crypto.domVMID.net ServerAdmin [email protected] DocumentRoot /var/www/crypto SSLEngine on SSLCertificateFile /etc/apache2/ssl/crypto.crt SSLCertificateKeyFile /etc/apache2/ssl/crypto.key </VirtualHost> Après avoir redémarré Apache, vous pouvez tester votre site et constater que celui est automatiquement redirigé vers une connexion en https. Vous constatez aussi que votre navigateur vous averti d'un danger potentiel. C'est tout à fait normal, puisque qu'il ne connait pas l'autorité de certification qui a signé le certificat. SECONDE CAPTURE DE TRAME Utilisez tshark pour capturer de nouveau les trames entre votre poste et votre serveur Vous devez voir que votre page est maintenant chiffrée dans les trames.