Serveur apache sécurisé


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
  3. Installation
  4. apt-get install openssl installe openssl version 0.9.8a

  5. Activation du module SSL sur Apache2
  6. Il faut s'assurer que le module soit bien chargé par Apache2
    cd etc/apache2/mods-available
    a2enmod ssl
    /etc/init.d/apache2 reload
    
  7. Qu'est ce qu'un certificat ?
  8. 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)

  9. Génération du certificat auto-signé
    1. Génération du certificat
    2. 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 []: --> ...
    3. Régler le serveur pour qu'il écoute (aussi) sur le port 443
    4. 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

    5. Création du fichier de configuration
    6. 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 10.194.2.xxx:443>
      	DocumentRoot /var/www/gepi
      	ServerName gepi.fctice93
          <Directory /var/www/gepi>
              Options Indexes MultiViews FollowSymLinks
              AllowOverride None
              Order deny,allow
              Deny from all
              Allow from all
          </Directory>	
              SSLEngine on
      	SSLCertificateFile /etc/apache2/ssl/apache.pem
      	SSLCertificateKeyFile /etc/apache2/ssl/6cc37e2e.0
      </VirtualHost>
      
    7. Commemntaires sur les directives
    8. - 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.
    9. Tests
    10. 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