Installer le paquet openssl à l’aide de la commande
# apt install openssl
Connectez-vous sous root et aller dans le répertoire de configuration de votre serveur Apache2 /etc/apache2(on peut évidemment choisir un autre répertoire) et créez un répertoire appelé « ssl ». Vous vous placez dans ce répertoire afin que les clés et les certificats soient créés à l’intérieur avant d’effectuer les manipulations.
On génère la clé privée avec la commande suivante en définissant un nom de fichier :
# openssl genrsa 1024 > serveur.key
La sortie attendue est la suivante :
Si vous souhaitez que cette clé ait un mot de passe(qui vous sera demandé à chaque démarrage d’apache, donc à éviter !), ajoutez « -des3 » après « genrsa ».
Pour observer son contenu taper la commande:
# less serveur.key
Pour protéger votre fichier taper la commande :
# chmod 400 serveur.key
Ce fichier contient la clé publique à certifier
# openssl req -new -key serveur.key > serveur.csr
Le système va vous demander de saisir des champs ; remplissez-les en adaptant sauf le champ « Common Name » qui doit être identique au nom de votre serveur virtuel :
Ce n’est pas la peine de saisir d’autres « extra attributes »…
Ceci a pour effet de créer le formulaire de demande de certificat (fichier serveur.csr) à partir de notre clé privée préalablement créée.
Ce fichier contient la clé publique à certifier.
Deux possibilités :
Pour signer un certificat, vous devez devenir votre propre autorité de certification, cela implique donc de réaliser une clé et un certificat auto-signé.
La création de la clé privée de l’autorité de certification se fait comme précédemment :
# openssl genrsa -des3 1024 > ca.key
Ce qui a pour effet de créer la clé privée de l’autorité de certification. Dans ce cas, il vaut mieux rajouter l’option -des3 qui introduit l’usage d’une « passphrase » (mot de passe long qui peut même contenir du blanc) car c’est cette clé privée qui signera tous les certificats que l’on émettra ; cette « passphrase » sera donc demandée à chaque utilisation de la clé.
Ensuite, à partir de la clé privée, on crée un certificat x509 pour une durée de validité d’un an auto-signé
#openssl req -new -x509 -days 365 -key ca.key > ca.crt
Il faut saisir la passphrase… puisqu’on utilise « ca.key » que l’on a protégé. Et on donne les renseignements concernant cette fois-ci l’autorité de certification (c’est à dire nous-même).
Attention : le nom de « Common Name » doit être différent de celui qui a été donné pour la clé (ici cert_CA).
C’est notre certificat d’autorité de certification qui va permettre de signer les certificats créés.
La commande qui signe la demande de certificat est la suivante :
#openssl x509 -req -in serveur.csr -out serveur.crt -CA ca.crt -CAkey ca.key -CAcreateserial -CAserial ca.srl
Il faut saisir la passphrase…
L’option « CAcreateserial » n’est nécessaire que la première fois.
Le certificat signé est le fichier « serveur.crt« . La sortie de la commande attendue est la suivante:
Vous avez maintenant un certificat pour votre serveur qui se nomme « serveur.crt »
La commande ci-dessous permet de voir le certificat :
# less serveur.crt
C’est ce dernier qui va valider le certificat reçu par le client lors de la requête https://. Pour installer sur votre navigateur le certificat de l’autorité de certification, fichier ca.crt :
Sur Mozzila :
Aller sur préférence > confidentialité et Sécurité ou Vie Privée et Sécurité > Certificats > Click sur Afficher les certificats > Autorités, aller tout en bas et cliquer sur « Importer » chercher le dossier où se trouve le certificat ca.crt (/etc/apache2/ssl) valider et fermer la fenêtre
Vérifions tout d’abord si le serveur apache2 a déjà le module ssl chargé à l’aide de la commande :
# apache2ctl -M | grep ssl
Le module est chargé si le résultat de la commande renvoie :
Sinon nous rechargeons le module avec la commande :
# a2enmod ssl
La sortie de cette commande devrait ressembler à ça :
Dans un premier temps il est nécessaire que le serveur apache écoute sur le port 443. Pour cela il suffit d’éditer le ficher /etc/apache2/ports.conf et vérifier que la ligne Listen 443 y soit présente.
La meilleure manière de l’intégrer est de l’écrire de la sorte :
Ainsi, lors de la désactivation (volontaire ou non) du module SSL d’Apache, la configuration restera correcte et ne plantera pas le serveur
Dans un second temps il est nécessaire de créer un virtualhost, Apache prenant en compte notre certificat ssl. Debian et Ubuntu en fournissent un par défaut (/etc/apache2/sites-available/default-ssl) que nous allons modifier pour tester.
Ouvrir le fichier /etc/apache2/sites-available/default-ssl.conf
Chercher les sections suivantes ou rajouter celles qui manquent :
VirtualHost _default_ :443
ServerAdmin webmaster@localhost
Servername dns.pawoed.org :443
Vérifier que les variables suivantes sont correctement définies dans le même fichier :
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/serveur.crt # chemin du fichier du certificat signé
SSLCertificateKeyFile /etc/apache2/ssl/serveur.key #chemin du fichier de la clé privée du certificat
NB :
1-attention à bien renseigner le bon répertoire du DocumentRoot (c’est dans ce répertoire que se trouve la configuration de votre site)
2-penser à créer le répertoire ErrorLog renseigner dans ce fichier
À l’aide de la commande ci-dessous nous allons activer l’hôte virtuel (en étant dans le répertoire /etc/apache2/sites-available) :
# a2ensite default-ssl
Redémarrer avec la commande
# service apache2 restart
À partir d’un navigateur sur votre poste client renseigner votre url :
https://dns.pawoed.org ou https://www.pawoed.org
Télécharger l’intégralité de la documentation ici
3 réflexions au sujet de « INSTALLATION ET CONFIGURATION D’UN SERVEUR WEB SÉCURISÉ »
filmPublié le 1:24 - Nov 26, 2020
You have brought up a very good points , thanks for the post. Natala Thatcher Sandry
filmPublié le 4:58 - Nov 30, 2020
Great post, you have pointed out some good points , I besides conceive this s a very fantastic website. Tanhya Hayes Eddina
filmPublié le 7:15 - Déc 1, 2020
Thanks-a-mundo for the post. Thanks Again. Really Great. Sandye Fremont Harman