Apache SSL
Article en ligne http://www.ac-creteil.fr/reseaux/systemes/linux/lamp2/TP-apache-ssl.html
Pourquoi installer SSL sur Apache ?
SSL (=Secure Socket Layer) est un protocole de cryptage qui s’applique aux pages transmises par le serveur aux navigateurs et qui assure ainsi une bonne sécurité pour les données
Il s’agit ici de permettre de sécuriser un hôtes virtuel grâce au protocole SSL Documentation
Site http://www.apache-ssl.org/
Installer la bibiothèque openssl
1. Les paquets indispensables sont-ils déjà installés ?
2. # dpkg -l | grep ssl déjà libssl0.9.8, openssl, ssl-cert Installation
apt-get install openssl installe openssl version 0.9.8a
3. Activation du module SSL sur Apache2
Il faut s’assurer que le module soit bien chargé par Apache2
cd etc/apache2/mods-available
a2enmod ssl
/etc/init.d/apache2 reload
4. Qu’est ce qu’un certificat ?
Les certificats permettent de fournir divers informations concernant l’identité de son détenteur. Ce certificat s’accompagne d’une clé publique indispensable pour que la communication entre les machines soit chiffrée. De même, afin de garantir l’authenticité du certificat, ce dernier est signé numériquement par le biais d’une clé dite privée provenant soit d’un organisme officiel (Société spécialisée dans la certification) soit par le détenteur du certificat lui même. Dans ce dernier cas, on parlera de certificat auto-signé (voir wikipedia)
5. Génération du certificat auto-signé
1. Génération du certificat
cd /etc/apache2/ssl
apache2-ssl-certificate
et on répond aux questions :
- Country Name (2 letter code) [GB] —> FR
- State or Province Name (full name) [Some-State] : —> France
- Locality Name (eg, city) [] : —> ...
- Organization Name (eg, company ; recommended) [] :
- Organizational Unit Name (eg, section) [] :
- server name (eg. ssl.domain.tld ; required !!!) [] :
Il s’agit du site que nous voulons sécuriser par ssl —> gepi.fctice93
- Email Address [] : —> ...
2. Régler le serveur pour qu’il écoute (aussi) sur le port 443
Par défaut, Apache2 est configuré pour écouter sur le port 80. Voir la commande :
netstat -nlt
Or le protocole SSL a besoin d’émettre sur un port spécifique pour pouvoir fonctionner, celui qui est adopté en général est le port 443.
Pour cela on ajoute cette directive de configuration dans le fichier /etc/apache2/ports.conf :
Listen 443
/etc/init.d/apache2 reload
netstat -nlt
3. Création du fichier de configuration
Si on passe la requête : https//localhost, on n’a accès nulle part. Normal puisque nous n’avons pas encore déclaré de répertoire pour être accédé par le port 443 et le protocole sécurisé https!
Il est nécessaire d’ajouter un fichier de configuration spécifique pour le service WEB qui qui bénéficier du chiffrement. Pour cela dans le répertoire /etc/apache2/sites-available
# fichier de configuration /etc/apache2/sites-available/gepis.conf
NameVirtualHost 10.194.2.xxx:443
<VirtualHost>
DocumentRoot /var/www/gepi
ServerName gepi.fctice93
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from all
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/6cc37e2e.0
4. Commemntaires sur les directives
- NameVirtualHost 10.194.2.xxx:443 pour déclarer un site virtuel accessible au port 443 - SSLEngine : pour activer le "moteur" SSL
- SSLCertificateFile : définit le certificat authentifiant le serveur auprès des clients.
- SSLCertificateKeyFile : définit la clé privée utilisée pour signer l’échange de clé entre le client et le serveur. Ici la clé se trouve dans le même fichier que le certificat (/etc/apache2/ssl). En fait, il s’agit d’un lien symbolique vers /etc/apache2/ssl/apache.pem.
5. Tests
Ensuite recharger la configuration d’apache2, puis passer l’URL : https://gepis.fctice93/ip/
On reçoit la fenêtre d’avertissement usuelle.
Faire ensuite le nécessaire pour que l’accès à la page d’authentification de GEPI ne s’obtienne plus par une requête adessée au port 80