Sécuriser le serveur Web

Maintenant que notre serveur est pret à l’emploi, nous allons nous intéressé à la sécurité car c’est un élément primordiale pour un serveur surtout en ligne. Nous allons donc activer le mode SSL sur apache avec la commande suivante:

Sous Debian:

sudo a2enmod ssl

Après cela, un fichier default-ssl.conf sera créer dans /etc/apache2/sites-available. C’est là que nous paramétrons ceux-ci pour le mode SSL. Maintenant créons notre dossier ssl dans /etc/apache2. Celui-ci sera le dossier qui comportera les fichiers .pem et .key de vos sites.

Sous Fedora:

sudo dnf install mod_ssl

Un fichier ssl.conf à été crée. Renommez le pour en garder une copie clean. Créez un dossier appelé ssl dans /etc/httpd. Maintenant, nous allons paramétrer les hôtes virtuels pour SSL. Ouvrez votre fichier d’hôtes virtuels et éditez-le comme suit:


<IfModule mod_ssl.c>
<VirtualHost _default_:443>
DocumentRoot /var/www/html
ServerName monsite
<Directory /var/www/html/>
Require all granted
</Directory>
SSLEngine on
#Vos certificats générés
SSLCertificateFile /etc/apache2/ssl/html.pem
SSLCertificateKeyFile /etc/apache2/ssl/html.key
#Certificat racine envoyé par l'autorité de certification
#Commentez les 3 lignes ci-dessous si vous auto-signez votre certificat
SSLCACertificateFile /etc/apache2/ssl/cert-racine.crt
#Certificat racine envoyé par l'autorité de certification
SSLCACertificateFile /etc/apache2/ssl/cert-intermediaire.crt
</VirtualHost>
</IfModule>

Maintenant si vous êtes sous Debian il vous faut activer votre nouveau fichier d’hôtes virtuels. Et si vous êtes sous Fedora, il faut remplacer apache2 par httpd. Et pour tout le monde, il faut redémarrer le service apache. Si apache refuse de redémarrer pour la cause des fichiers html.pem et html.key sont manquant, redémarrez votre serveur après la prochaine étape.

Génération de cerfifitcat SSL auto-signé

Pour générer des certificats SSL, nous allons utiliser openssl. Voici la commmande:

Sous Debian:

sudo apt-get install openssl

Sous Fedora:

sudo dnf install openssl

Maintenant que openssl est installé créons notre certificat auto-signé avec la commande suivante:

Sous Debian et ses dérivées:

sudo openssl req -newkey rsa:2048 -x509 -days 365 -nodes -out /etc/apache2/ssl/html.pem -keyout /etc/apache2/ssl/html.key

Sous Fedora:

sudo openssl req -newkey rsa:2048 -x509 -days 365 -nodes -out /etc/httpd/ssl/html.pem -keyout /etc/httpd/ssl/html.key

Connection au serveur par SSL

Pour vous connecter à votre serveur par https au lieu de http, il vous faut parametrer le port 443 dans votre routeur ou box vers l’ip de votre serveur. Si vous êtes sous Fedora, Il vous faudra ajouter ce port et le protocole https dans votre firewall-cmd comme nous l’avons fait quelques pages avant (Connection au serveur en local). Voila, maintenant vous pouvez mutiliser votre serveur à distace comme en local.

Nom de domaine:

Bien que ce soit facultatif, il est préférable d’avoir un nom de domaine surtout dans le cas d’un serveur en ligne. Si vous n’en n’avez pas encore, reste plus qu’à en trouver un. Il vous faudra trouver un bureau d’enregistrement qui vous propose la gestions des DNS ou au moins gestion de DNS de type A Celui-ci permet de faire du pointage IP afin de rediriger le nom de domaine vers votre ip publique. Voici quelques-un qui le permettent: gandi.net ovh.com lws.fr bookmyname.com