INSTALLATION ET CONFIGURATION D’UN SERVEUR WEB SÉCURISÉ

INSTALLATION ET CONFIGURATION D’UN SERVEUR WEB SÉCURISÉ

Installer le paquet openssl à l’aide de la commande

# apt install openssl 

Création des certificats

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.

  • Génération de la clé privée

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

  • Création d’un fichier de demande de signature de certificat

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 :

  1. Envoyer le fichier serveur.csr à un organisme (le tiers de confiance ou l’autorité de certification (CA)) et ainsi obtenir le certificat dûment signé par la clé privée de l’organisme (après avoir payé),
  2. Ou bien signer vous-même le certificat.
  • Création de son propre certificat de l’autorité de certification

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 signature du certificat serveur par le CA (Certificate Autority)

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

  • Installer le certificat de l’autorité de certification dans chaque navigateur client.

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

Configuration du serveur apache2

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

Activation du VirtualHost et redémarrage du serveur apache2

À 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

Test

À 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

admin7498

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

Laissez votre message