Skip to content

Sécuriser Apache avec TLS (SSL)

I- Création d'un certificat auto-signé sous Debian :

Pour utiliser le SSL et créer un certificat sous Debian, vous devez installer les paquets suivants avec aptitude :

apt install openssl

Nous allons ensuite nous placer dans le répertoire d'Apache 2 (/etc/apache2) pour générer le certificat au bon endroit :

cd /etc/apache2

Création de la clé privée RSA :

Cette commande va vous permettre de générer une clé privée RSA :

openssl genrsa -out server.key 1024

Génération d'un certificat auto-signé :

La certification d'un site SSL par un organisme, est très coûteuse,

c'est pourquoi les particuliers et TPE auto-signent leurs certificats.

A partir de la clé de tout à l'heure, vous allez pouvoir créer un certificat générique pour votre organisme :

openssl req -new -key server.key -out server.csr

Vous devrez répondre ensuite aux questions qui permettront d'identifier votre organisme :

  • Code de pays, État, Ville, Entreprise, Section de l'entreprise, Nom du responsable du site sécurisé, e-mail du responsable

Enfin, vous allez pouvoir créer le certificat utilisable par les visiteurs au format x509 pour une certaine durée (dans cet exemple 1 an) :

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

II- Activation d'un site sécurisé sous Apache :

Activer le SSL dans Apache 2 :

Pour avoir la liste complète des modules de Apache 2, on peut faire :

ls /etc/apache2/mods-available

Pour activer un module de Apache 2 on utilise la commande a2enmod. Le SSL est peut être déjà activé mais pour le vérifier on peut taper :

a2enmod ssl

Modification des ports d'écoute :

Vérifiez dans le fichier /etc/apache2/ports.conf si il existe le port 443 pour le module SSL. Si ce n'est pas le cas, vous pouvez ajouter une ligne :

Listen 443

Nouveau site virtuel :

Créez un nouveau site virtuel (fichier dans /etc/apache2/sites-available/ ).

Dans ce fichier vous pouvez écrire les lignes suivantes :

NameVirtualHost www.votreserveur.com:443
<VirtualHost www.votreserveur.com:443>
     DocumentRoot /var/www/repduserveur
     ServerName www.votreserveur.com
     <Directory /var/www/repduserveur>
         Options Indexes MultiViews FollowSymLinks
         AllowOverride None
         Order deny,allow
         Deny from all
         Allow from all
     </Directory>
     SSLEngine on
     SSLCertificateFile /etc/apache2/server.crt
     SSLCertificateKeyFile /etc/apache2/server.key
</VirtualHost>

Redémarrage et test :

Il ne reste qu'à recharger le serveur Apache :

/etc/init.d/apache2 restart

Pour tester ce serveur sécurisé, vous pouvez aller sur :

https://www.votreserveur.com/

Vous devriez avoir un avertissement car ce certificat est auto-signé. Vérifiez le contenu du certificat. Vérifiez par une analyse de trame que les informations ne sont pas lisibles.