Il est nécessaire dans un premier temps d'activer le module ssl :
a2enmod ssl Module ssl installed; run /etc/init.d/apache2 force-reload to enable
Comme on vous le demande, relisez la configuration du serveur.
La commande ls /etc/apache2/mods-enabled/ donne partiellement ceci :
ssl.conf ssl.load
Nous allons faire fonctionner sur notre serveur simultanément
des virtualhost fonctionnant sous
HTTP
(sur le port 80) et des virtualhost fonctionnant sous
HTTPS
(sur le port 443).
Dès lors que l'on a des serveurs virtuels qui
"tournent" sur des ports différents, il est
obligatoire de préciser pour chaque serveur virtuel son
port
. Aussi, dans le fichier
/etc/apache2/site-available/default
, il faut modifier :
NameVirtualHost * devient NameVirtualHost *:80 <VirtualHost *> devient <VirtualHost *:80> pour chaque virtualhost <VirtualHost adr_IP> devient <VirtualHost adr_IP:80> pour chaque virtualhost
Profitez-en pour effacer le virtualhost correspondant au ServerName : wiki.domain1.org puisque c'est celui que l'on va configurer en HTTPS.
Il est possible de rajouter la configuration du virtualhost
devant fonctionner sous ssl dans le fichier
/etc/apache2/site-available/default, mais nous allons
garder l'esprit modulaire et créer un fichier de conf
spécifique
/etc/apache2/site-available/default-ssl.
Voici ce que vous devez trouvez au minimum dans le fichier
/etc/apache2/site-available/default-ssl (les
commentaires et/ou explications éventuelles précèdent les
directives)
#La déclaration du virtualhost. #Attention : mettre bien une "*" et NON une adresse IP car #on ne peut trouver qu'une seule fois la directive #NameVirtualHost adresseIP :Port et nous l'avons déjà dans #le fichier "default". NameVirtualHost *:443 #Du coup : mettre aussi ici une "*" car sinon vous allez #avoir le warning suivant très horripilant : #NameVirtualHost *:443 has no VirtualHosts <VirtualHost *:443> ServerName wiki.domain1.org DocumentRoot /home/web/wiki #Les directives pour les certificats SSLEngine On SSLCertificateFile /etc/apache2/ssl/servwiki.crt SSLCertificateKeyFile /etc/apache2/ssl/servwiki.key #Les directives qui suivent ne sont pas obligatoires mais #aident au débugage #On isole les erreurs relatives à http #Attention : il faut créer le fichier "error_ssl.log" ErrorLog /var/log/apache2/error_ssl.log LogLevel warn </VirtualHost>
Il est nécessaire maintenant d'activer le site : a2ensite default-ssl
Attention : ne pas oublier de relire ensuite la configuration de même qu'à chaque modification ultérieure du fichier.
Vous pouvez maintenant "passer" à la phase de test...
A partir d'un navigateur sur votre poste client :
https://wiki.domain1.org
Votre page devrait s'afficher normalement.
Si vous avez une alerte de sécurité, c'est que vous avez mal réalisé une étape. Selon l'alerte, reprenez l'étape correspondante.
Si ça ne fonctionne pas vous pouvez même mettre le LogLevel à "debug" ou "info" à la place de "warn" puis dans une console : "tail -f /var/log/apache2/error_ssl.log" pour voir quels sont les problèmes qui surviennent quand vous rechargez la lecture de la configuration.
Une autre commande peut vous aiguiller sur une éventuelle erreur : openssl s_client -connect prof.btsinfo.fr:443
Vous pouvez maintenant revoir, dans la partie cours, le schéma concernant le protocole SSL et l'application HTTP (fig 1.7).