WikiBtsSio
Serveur Apache sécurisé
Objectifs : Être capable d'installer et de sécuriser un serveur web.
Conditions de réalisation : Environnement Debian
Durée : deux Heures.
Vous allez voir à travers ce TP, comment installer, paramétrer et sécuriser un serveur web sous linux en utilisant apache et les certificats.
Pour la réalisation de ce TP, vous aurez besoin d'une machine virtuelle debian. Vérifiez bien que votre carte réseau est en accès par pont et que vous avez bien une adresse IP sur le même réseau que la salle à l'aide de la commande ifconfig.
1. Pour administrer votre serveur, vous utiliserez un accès distant à l'aide de la commande ssh. Pour cela, vous pouvez taper la commande ssh root@IP_debian. On vous demande de vérifier que la signature du serveur est bien la bonne en l'acceptant puis le mot de passe de connexion. Ensuite, vous pouvez travailler comme si vous étiez sur votre serveur avec l'avantage du copier/coller.
2. Vous allez tout d'abord mettre à jour votre système.
3. Sur votre machine debian, vous avez déjà tout ce qu'il vous faut. Cependant, apache utilise des modules additionnels pour augmenter ses fonctionnalités. Ces modules sont présents dans le répertoire /etc/apache2/mods-available/. Pour qu'ils soient actifs, il faut placer un lien (un raccourci) dans le répertoire /etc/apache2/mods-enabled/. Cependant une commande peut le faire pour vous : a2enmod (apache2 enabled module). Pour activer le support du https : a2enmod ssl. Il faut redémarrer le service.
4. Qui dit https dit certificat. Vous allez créer votre certificat à l'aide de la commande make-ssl-cert. Cette commande va vous permettre de créer votre certificat à l'aide d'un modèle. Pour cela, tapez make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/apachecert.pem. En fait ce fichier contiendra votre certificat ainsi que votre clé privée.
5. Testez le bon fonctionnement de votre serveur en utilisant le protocole https. Que se passe t il ?
6. Vous allez dire à apache de prendre en compte votre certificat. Pour cela, vous devez modifier le fichier /etc/apache2/sites-available/default-ssl et adaptant la ligne SSLCertificateFile et en commentant la ligne SSLCertificateKeyFile car vous n'avez pas de clé privée séparée. Ensuite il faut activer votre site sécurisé : a2ensite default-ssl.
7. Testez le bon fonctionnement de votre serveur en utilisant le protocole https. Que se passe t il ?
8. Récupérez les informations de votre certificat : durée de validité, méthode de cryptage, taille en bits.
9. On veut faire en sorte que votre site ne puisse utiliser que https. Pour cela, il faut désactiver le site par défaut en utilisant une commande proche de a2ensite.
10. Tout cela fonctionne mais vous n'avez pas eu la main sur la configuration de votre certificat. Vous allez maintenant créer un nouveau certificat où vous allez choisir toutes les caractéristiques. Pour cela, vous allez utiliser openssl en utilisant la commande suivante :
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key
où days indique la durée de validité, newkey indique le type de cryptage et la taille, out l'emplacement du certificat et keyout l'emplacement de la clé privée. Il faut répondre à toutes les questions puis modifier la configuration de apache pour accepter votre nouveau certificat.