MMI - SEMESTRE 4 SERVEUR HTTPS Préparé pour : M4204 Préparé par : Patrice GOMMERY 29 septembre 2015 Objectif Créer un Site Web accessible avec le protocole HTTPS Démarche Créer un site web virtuel sous Apache Créer une autorité de certification avec OpenSSL Créer et signer un Certificat Serveur pour notre site Web Vérifier la bon chiffrement des données avec tshark Méthode Ce TP n'est pas "autoguidé", il ne donne que des pistes pour arriver à l'objectif voulu. A vous de chercher (dans les anciens TP, ou sur le net) pour mettre en oeuvre les solutions proposées.
MMI - SEMESTRE 4 CREATION DU SITE WEB Le site aura pour URL : http://crypto.domn.net et sera associé à une nouvelle adresse IP : 172.16.N.99 Le serveur DNS de la salle sait résoudre le nom, il vous faut donc ajouter une seconde IP à votre carte réseau (sans supprimer la première!). Modifiez le fichier /etc/network/interfaces en ajoutant les lignes suivantes : auto eth0:0 iface eth0:0 inet static address 172.16.N.99 netmask 255.255.0.0 Rebootez pour prendre en compte la modification ( ou faites ifup eth0:0) 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 quelques 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 001-crypto.conf Modifiez la Directive DocumentRoot du fichier 001-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.domn.net 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.N.99" Ouvrez votre navigateur avec l'adresse : http://crypto.domn.net Vous devez voir la totalité de votre page passé "en clair" sur le réseau.
MMI SEMESTRE 4 CREATION DE L'AUTORITE DE CERTIFICATION Pour créer votre autorité de certification, vous avez besoin d'installer le package openssl Pour faciliter le TP, vous devez aussi télécharger le fichier cert_manager.tar. se trouvant sur le serveur FTP de la salle (Dossier mmis4/exemples) Décompressez le fichier (tar xvf cert_manager.tar) avant d'utiliser le script. Les fichiers seront alors dans /root/cert_manager ETAPE 1 : Initialisation et Création de l'autorité de Certification INITIALISATION :./cert_manager.sh --init Remplissez les informations demandées en respectant bien le nom de domaine de notre site (domn.net) CREATION DE L'AUTORITE (CA) :./cert_manager.sh --create-ca Le script construit la clé privée et le certificat de l'autorité de certification. Les deux fichiers seront stockés dans le dossier CERT_MANAGER/CERTIFICATE_AUTHORITY REMARQUE : Notre CA étant autonome, nous n'avons pas besoin de faire signer notre certificat par une autorité reconnue sur Internet. ETAPE 2 : Création du Certificat pour le site Web CREATION DU CERTIFICAT :./cert_manager.sh --generate-csr=https Remplissez les informations demandées avec le nom de domaine complet (crypto.domn.net) Le script a généré la clé privée et le certificat (clé publique) pour votre site. Il faut maintenant faire signer le certificat par notre autorité de certification. SIGNATURE DU CERTIFICAT :./cert_manager.sh --sign-csr=https Validez toutes les options par défaut. Le certificat signé se trouve dans CERT_MANAGER/CERTIFICATES et se nomme : https_cert.cert La clé privée se trouve dans CERT_MANAGER/PRIVATE_KEYS et se nomme : https_key.pem CHIFFREMENT DU SITE WEB ETAPE 1 : Activation de SSL sur apache Activer le module SSL sur apache2 Créer un dossier nommé SSL dans /etc/apache2 Recopiez la clé privée et le certificat de votre site dans ce dossier.
ETAPE 2 : Configuration du Site en HTTPS Vous devez modifier votre fichier de configuration pour qu'il contienne deux parties : < VirtualHost 172.16.N.99:80> <-- Ligne à Modifier ServerName crypto.domn.net ServerAdmin webmaster@localhost DocumentRoot /var/www/crypto <-- Ligne à ajouter Redirect / https://crypto.domn.net <-- Ligne à ajouter... (Ne supprimer pas le reste des directives) </VirtualHost> Tout le reste est à ajouter en fin de fichier : <VirtualHost 172.16.N.99:443> ServerName crypto.domn.net ServerAdmin root@domn.net DocumentRoot /var/www/crypto SSLEngine on SSLCertificateFile /etc/apache2/ssl/https_cert.cert SSLCertificateKeyFile /etc/apache2/ssl/https_key.pem </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. REMARQUES IMPORTANTES L'approche dans ce TP est très rapide mais n'est pas à exploiter tel-quel sur un site de production. L'utilisation du script cert_manager n'est là qu'à titre de démonstration. Pour plus d'information et une approche plus "professionnelle" je vous engage à aller voir le site : http://howto.biapy.com/ qui contient une collection de tutoriels pour Debian mis à jour régulièrement. Un bon site de ressources pour l'administration de vos serveurs.