Travail fait par CHEBBAH Mehdi et HAMMAS Ali Cherif
Tableau de Contenue1. Créer un espace de Publication Web Apache2. Créer un répertoire pour la zone sécurisée3. Créer les certificats et les clés pour la CA et le Serveur Web4. Les tests5. Analyse et comparaison des échangesA. Sans authentification du serveur (HTTP)B. Avec authentification du serveur (HTTPS)6. Ajouter un certificat Client
delta
1> sudo mkdir /opt/lampp/htdocs/delta
httpd.conf
xxxxxxxxxx
11> sudo nano /opt/lampp/etc/httpd.conf
Le fichier httpd.conf
correspond a la configuration du serveur http
.
On fait les modifications suivantes:
xxxxxxxxxx
41#DocumentRoot "/opt/lampp/htdocs"
2DocumentRoot "/opt/lampp/htdocs/delta"
3#<Directory "/opt/lampp/htdocs">
4<Directory "/opt/lampp/htdocs/delta">
index.html
pour le serveur http
xxxxxxxxxx
11> sudo echo "Hello World, This is HTTP server." > /opt/lampp/htdocs/delta/index.html
xxxxxxxxxx
11> sudo /opt/lampp/lampp restart
xxxxxxxxxx
11> sudo firefox http://localhost
secure
:xxxxxxxxxx
11> sudo mkdir /opt/lampp/htdocs/delta/secure
httpd-ssl.conf
:xxxxxxxxxx
11> sudo nano /opt/lampp/etc/extra/httpd-ssl.conf
Le fichier httpd-ssl.conf
correspond a la configuration de serveur HTTPS
.
On fait les modifications suivantes:
xxxxxxxxxx
21#DocumentRoot "/opt/lampp/htdocs"
2DocumentRoot "/opt/lampp/htdocs/delta/secure"
index.html
pour le serveur https
xxxxxxxxxx
11> sudo echo "Hello World, This is a secure HTTP server." > /opt/lampp/htdocs/delta/secure/index.html
On lance tinyca2 par la commande suivante:
xxxxxxxxxx
11> sudo tinyca2
On remplie les informations de CA comme suit:
On clique sur OK le résultat est:
cles
et certifs
xxxxxxxxxx
11> sudo mkdir -p /opt/lampp/etc/delta/cles /opt/lampp/etc/delta/certifs
On clique sur New
dans l'angle certificats
puis on choisi serveur
On rempli les informations demandés comme suit:
Puis on sera invité a remplir le mot de pass du CA:
puis on clique sur export
dans l'angle Keys
, on rempli la fenêtre comme suit:
On confirme qu'on voulez importer la clé sans mot de passe:
Un message de sucée va être affiche tout suite.
Puis on clique sur l'angle certificats
puis export et on rempli les informations demandés:
Un message de sucée va être affiche tout suite.
httpd-ssl.conf
:On fait les modifications suivantes:
xxxxxxxxxx
41#SSLCertificateFile /opt/lampp/etc/ssl.crt/server.crt
2SSLCertificateFile /opt/lampp/etc/delta/certifs/serveurcert.pem
3#SSLCertificateKeyFile /opt/lampp/etc/ssl.key/server.key
4SSLCertificateKeyFile /opt/lampp/etc/delta/cles/serveurkey.pem
apache
:xxxxxxxxxx
11> sudo /opt/lampp/lampp restart
xxxxxxxxxx
11> sudo firefox https://localhost
Firefox va demander si on accepte le certificat du serveur
Si on accepte cette certificat la page index.html
qu'on a inséré a delta/secure
va être chargé mais avec un avertissement indique que la certificat n'est pas sécurisé.
On clique sur l'angle CA
puis sur export CA
puis on choisi l'endroit ou on veut enregistrer le certificat du CA
On ajoute le certificat au navigateur. Pour faire on suit les étapes suivantes:
80
et que le protocole utilisé dans la couche transport pour cette session est TCP
HTTP
(Pas de confidentialité)En générale la structure de cette session est la suivante
On remarque que le port utilisé par le serveur est 443
et qu'on a utilise deux protocoles dans la couche transport TCP
et TLS
On remarque que les données sont cryptées dans les requêtes
On remarque aussi que les repenses du serveur sont cryptées
On remarque qu'il y a des options dans les paquets TLS
pour vérifier l’identité du serveur ou du client
En générale la structure de cette session est la suivante
Pour le protocole SSL
ClientHello
ServeurHello
Certificat
du serveur
ServerkeyExchange
ServerHelloDone
Clientkeyexchange
ChangeSipherSpec
du client
Finished
du client
ChangeSipherSpec
et Finished
du serveur
On clique sur New
dans l'angle certificats
puis on choisi client
On rempli les informations demandés comme suit:
Puis on sera invité a remplir le mot de pass du CA:
puis on clique sur export
dans l'angle Keys
après avoir sélectionner client
, on rempli la fenêtre comme suit:
On confirme qu'on voulez importer la clé sans mot de passe:
Un message de sucée va être affiche tout suite.
Puis on clique sur l'angle certificats
puis export
après avoir sélectionner client
et on rempli les informations demandés:
Un message de sucée va être affiche tout suite.
On ouvre le fichier httpd-ssl.conf
et on fait le modifications suivantes:
xxxxxxxxxx
81#SSLCACertificatePath /opt/lampp/etc/ssl.crt
2#SSLCACertificateFile /opt/lampp/etc/ssl.crt/ca-bundle.crt
3SSLCACertificatePath /opt/lampp/etc/delta/certifs/
4SSLCACertificateFile /opt/lampp/etc/delta/certifs/My_CA-cacert.pem
5#SSLVerifyClient require
6#SSLVerifyDepth 10
7SSLVerifyClient require
8SSLVerifyDepth 2
On relance apache
xxxxxxxxxx
11> sudo /opt/lampp/lampp restart
On remarque que le client ne peut pas connecter sur le serveur parce que le navigateur ne trouve pas la certificat du client et le serveur demande cette dernier donc le protocole HTTPS génère une alerte au navigateur pour empêcher le client de se connecter au serveur.
Si on analyse cette session on utilisant Wireshark
on trouve
Puisque Firefox
n'accepte que les certificats des clients qui a l’extension .p12
on est obligé de re-exporter la certificat dans cette format en suivant les étapes:
Puis
Ensuit on ajoute la certificat exportée dans le navigateur pour faire :
On clique sur Import...
puis on choisi le certificat de client crée dans l’étape précédente
Une fenêtre demandant le mot de passe va apparaître, on la laisse vide
On remarque qu'une entre va être ajouté a l'angle Your certificats
Puis on clique sur OK
On relance apache
xxxxxxxxxx
11> sudo /opt/lampp/lampp restart
Si on essai d'accéder au serveur via le navigateur on sera invite a choisir une certificats pour être authentifie dans le serveur
Si on clique sur OK
, alors on peut accéder au serveur avec toutes sécurité
Dans Wireshark
on trouve
On remarque qu'il y a une authentification mutuel entre le serveur et le client