Didacticiel

Sécuriser son serveur Apache sous Ubuntu 20.04

Utilisation de Let's Encrypt pour le cryptage HTTPS

Introduction

Let’s encrypt est une autorité de certification (CA) à but non lucratif fournissant leurs certificats TLS à 180 millions de sites Web. Cette CA, à travers son logiciel client Certbot, simplifie et automatise les étapes requises pour l’obtention et l’installation d’un certificat.

Création d’un fichier d’hôte virtuel

Si vous avez préalablement fait cette partie, passez a l’étape suivante (Installation de certbot)

Après l’installation d’un serveur Apache sous Ubuntu 20.04, ce dernier a une hôte virtuel par défaut qui est configurée et activée(/var/www/html)  pour tester votre serveur. Cependant, avec Apache sur votre serveur vous pouvez configurer plusieurs sites qui pourront être servi depuis le même serveur, pour cela on utilisera des fichiers hôtes virtuels distincts pour chaque site.

1 – Création du répertoire de votre site

$ sudo mkdir /var/www/votre_site

2 – Attribution de la propriété du répertoire à l’utilisateur

$ sudo chwon -R $USER:$USER /var/www/votre_site

$USER est une variable d’environnement faisant référence à l’utilisateur actuel.

Par la suite vous pouvez soit mettre les fichiers de votre site au sein du dossier /www/var/votre_site/ ou créez une page /var/www/votre_site/index.html et y ajoutez un code HTML de votre choix.

3 – Création d’un hôte virtuel pour votre site

Pour que votre site soit opérationnel, il est nécessaire de créer un fichier d’hôte virtuel avec les directives correctes. Pour cela on va créer un nouveau fichier de configuration dans /etc/apache2/sites-available/votre_site.conf

$ sudo nano /etc/apache2/sites-available/votre_site.conf

Par la suite ajouter le bloc de configuration suivant :

<VirtualHost *:80> 
   ServerAdmin webmaster@localhost 
   ServerName votre_site 
   ServerAlias www.votre_site 
   DocumentRoot /var/www/votre_site 
   ErrorLog ${APACHE_LOG_DIR}/error.log 
   CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost>

4 – Activation de votre site

Une fois votre site configure et les fichiers dans votre dossier racine, il faudra activer votre nouveau site pour qu’il puisse être traité par Apache

$ sudo a2ensite votre_site.conf

et on désactive le site par défaut

$ sudo a2dissite 000-default.conf

Puis vous pouvez vérifier votre configuration avec :

$ sudo apache2ctl configtest

cette commande effectue une vérification de la syntaxe du fichier de configuration. Avec cette option, le script parcourt le fichier de configuration et renvoie soit Syntax Ok, soit des informations détaillées à propos des éventuelles erreurs de syntaxe.

Dans cette partie vous avez pu configurer votre nouveau site.

Installation de Certbot

Certbot permet l’automatisation de l’obtention de votre certificat SSL et la configuration du HTTPS au sein de votre serveur WEB avec Let’s Encrypt

$ sudo install -y certbot python3-certbot-apache

Une fois installé, on procédera à une vérification de la configuration de votre hôte virtuel.

Configurer le Pare-feu

Lors de l’installation d’Apache, il enregistre quelques profils d’application UFW. Pour voir la liste des profiles applications :

$ sudo ufw app list

Vous aurez un résultat similaire à celui ci, avec des applications de plus ou moins (en fonction de ce que vous avez sur votre serveur)

Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
    • Apache                  :  Ce profile ouvre le port 80 (Trafic non chiffré)
    • Apache Full     :  Ce profile ouvre les port 80 (Trafic non chiffré) et port 443 (Trafic chiffré TLS/SSL)
    • Apache Secure :  Ce profile ouvre seulement le port 443 (Trafic chiffré TLS/SSL)

La commande :

$ sudo ufw status

va nous permettre de voir les applications qui ont été autorisées :

Status: active

To                      Action            From
--                      ------            ----
OpenSSH                 ALLOW           Anywhere 
OpenSSH (v6)            ALLOW           Anywhere (v6)

Pour permettre le trafic HTTPS, on va autoriser le profile Apache Full ou Apache Secure

$ sudo ufw allow 'Apache Full'

Obtenir votre certificat

$ sudo certbot --apache

Ce script vous invitera à répondre à une série de questions afin d’obtenir et configurer votre certificat. Notez que le plugin Apache utilisé ici permettra de reconfigurer Apache pour supporter le HTTPS.
dfdf

  • Il vous demandera une adresse mail electronique valide, saisissez une et validez par ENTREE;
  • Puis vous serez invitee à accepter les conditions d’utilisation du service Let’s Encrypt, Valider en tapant A puis ENTREE;
  • Par la suite il vous demandera si vous souhaitez partager votre adresse mail avec l’Electronic Frontier Foundation pour recevoir des nouvelles et d’autres informations. Vous pouvez accepter en tapant Y ou refuser en tapant N puis ENTREE
  • L’étape suivante consiste à informer Certbot des domaines pour lesquels vous désirez activer le HTTPS (qui seront obtenus à partir du fichier de configuration de l’hôte virtuel qu’on avait configuré).
    • Attention,  vous devez avoir deux enregistrement DNS :
      • Un enregistrement A avec votre_site pointant sur l’adresse IP publique de votre serveur
      • Un enregistrement A avec www.votre_site pointant sur l’adresse IP publique de votre serveur
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: votre_site
2: www.votre_site
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):
  • Finalement, vous serez invité à choisir si vous voulez ou non que le trafic HTTP soit redirigé vers le HTTPS. Choisissez 2 pour activer la redirection, ou 1  si vous souhaitez conserver HTTP et HTTPS comme méthodes distinctes d’accès à votre site web.
Afficher plus

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page