GNU/Linux >> Tutoriels Linux >  >> Linux

Comment sécuriser le serveur Web Apache avec Let's Encrypt sur RHEL 8

Dans un monde en ligne constamment inondé de menaces de sécurité, la sécurisation de votre serveur Web doit être une priorité. L'un des moyens de sécuriser votre serveur Web consiste à implémenter le protocole HTTPS sur votre site à l'aide d'un certificat SSL/TLS. Un certificat SSL/TLS sécurise non seulement votre site en cryptant les informations échangées entre le serveur Web et les navigateurs des utilisateurs, mais contribue également au classement Google.

Dans ce guide, vous apprendrez à sécuriser le serveur Web Apache (http) avec Let's Encrypt SSL/TLS sur RHEL 8.

Prérequis

Voici ce dont vous avez besoin avant de continuer :

  • Une instance du serveur RHEL 8 avec un utilisateur sudo configuré.
  • Un nom de domaine complet (FQDN) pointant vers l'adresse IP publique de votre serveur. Tout au long de ce guide, nous utiliserons le nom de domaine linuxtechgeek.info.

Étape 1) Installer Apache sur RHEL 8

La première étape consiste à installer le serveur Web Apache. Étant donné qu'Apache existe déjà dans le référentiel AppStream de Red Hat, vous pouvez l'installer à l'aide du gestionnaire de packages DNF comme suit.

$ sudo dnf install -y httpd

Une fois installé, démarrez le serveur Web Apache et activez-le pour qu'il démarre au démarrage.

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

Pour vérifier qu'Apache est en cours d'exécution, exécutez la commande :

$ sudo systemctl status httpd

Remarque :Si le pare-feu est en cours d'exécution, autorisez les ports Apache suivants dans le pare-feu, exécutez

$ sudo firewall-cmd --add-port=80/tcp --permanent
$ sudo firewall-cmd --add-port=443/tcp –permanent
$ sudo firewall-cmd --realod

Vous pouvez maintenant accéder à votre navigateur Web et parcourir votre domaine dans la barre d'URL.

Étape 2) Installer Certbot

Certbot est un client open source facile à utiliser qui est maintenu par EFF (Electronic Frontier Foundation). Il récupère le certificat TLS de Lets Encrypt et le déploie sur le serveur Web. Ce faisant, il élimine les tracas liés à la mise en œuvre du protocole HTTPS à l'aide du certificat TLS.

Pour installer Certbot et les packages associés, activez d'abord EPEL (Extra Packages for Enterprise Linux).

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

Ensuite, installez le package certbot et mod_ssl comme suit.

$ sudo dnf install certbot python3-certbot-apache mod_ssl

Étape 3) Créer un fichier d'hôte virtuel Apache

Les hôtes virtuels permettent d'héberger plusieurs domaines sur un seul serveur Web.

La première étape consiste à créer un répertoire à l'intérieur de la racine du document dans lequel tous les fichiers du site Web iront.

$ sudo mkdir -p /var/www/linuxtechgeek.info/html

Définissez la propriété du répertoire sur l'utilisateur Apache.

$ sudo chown -R apache:apache /var/www/linuxtechgeek.info/html

Assurez-vous de définir les autorisations du répertoire comme indiqué.

$ sudo chmod -R 755 /var/www

Avec le répertoire du domaine en place avec toutes les propriétés et autorisations définies, nous allons créer un fichier d'hôte virtuel dans le répertoire /etc/httpd/conf.d/.

$ sudo vi /etc/httpd/conf.d/linuxtechgeek.info.conf

Collez les lignes suivantes et veillez à utiliser votre propre nom de domaine.

<virtualhost *:80>
ServerName linuxtechgeek.info
ServerAlias www.linuxtechgeek.info
DocumentRoot /var/www/linuxtechgeek.info/html
ErrorLog /var/log/httpd/linuxtechgeek.info-error.log
CustomLog /var/log/httpd/linuxtechgeek.info-access.log combined
</virtualhost>

Enregistrez et quittez le fichier virtualhost.

Pour tester si l'hôte virtuel fonctionne, nous allons créer un exemple de fichier HTML dans le répertoire du site Web.

$ sudo vi /var/www/linuxtechgeek.info/html/index.html

Collez l'exemple de contenu suivant. N'hésitez pas à le modifier selon vos préférences.

<!DOCTYPE html>
<html>
     <body>
         <h1> Welcome to Linuxtechi virtualhost </h1>
      </body>
</html>

Enregistrez et quittez le fichier HTML. Pour enregistrer toutes les modifications apportées, redémarrez le serveur Web Apache.

$ sudo systemctl restart httpd

Maintenant, parcourez à nouveau votre domaine, et cette fois-ci, au lieu de la page d'accueil Apache par défaut, vous devriez voir la page HTML personnalisée que vous venez de configurer. C'est la preuve que le fichier d'hôte virtuel fonctionne.

Étape 4) Sécurisez Apache avec le certificat Let's Encrypt

La dernière étape consiste à récupérer et à déployer le certificat Let’s Encrypt. Pour cela, lancez simplement la commande :

$ sudo certbot --apache

Lorsque la commande est exécutée, certbot vous guidera à travers une série d'invites. Vous serez invité à entrer votre adresse e-mail et vous devrez accepter les conditions générales. Il vous sera également demandé si vous souhaitez recevoir des e-mails périodiques sur les actualités de l'EFF et les campagnes sur la liberté numérique.

Lorsque vous êtes invité à indiquer les noms pour lesquels activer HTTPS, appuyez simplement sur ENTRÉE pour appliquer le certificat à tous les domaines fournis. 

Certbot procédera à la récupération du certificat TLS auprès de Let's Encrypt et l'implémentera sur votre serveur Web. Certbot imprimera alors le chemin où le certificat et la clé ont été enregistrés ainsi que le chemin de déploiement du certificat pour vos domaines.

Pour vérifier que Let's encrypt a été déployé avec succès, actualisez votre navigateur. Cette fois-ci, vous remarquerez une icône de cadenas au début de la barre d'URL indiquant que le site a été chiffré avec succès.

Vous pouvez cliquer sur l'icône du cadenas pour plus de détails

De plus, vous pouvez effectuer un test SSL sur les laboratoires SSL pour vérifier numériquement votre certificat. Si tout s'est bien passé, vous devriez obtenir la note A.

Étape 5) Let's Encrypt Certificate Renewal

Le certificat Let's Encrypt n'est valable que 90 jours. Quelques semaines avant l'expiration, vous recevrez généralement une notification de l'EFF concernant l'expiration imminente du certificat et la nécessité de renouveler votre certificat.

Vous pouvez renouveler manuellement le certificat en exécutant la commande :

$ sudo certbot renew

Pour simuler le renouvellement du certificat, lancez la commande :

$ sudo certbot renew --dry-run

Cela imite simplement le renouvellement réel du certificat et n'effectue aucune action.

Pour automatiser le renouvellement du certificat, ouvrez le fichier crontab

$ crontab -e

Spécifiez ci-dessous la tâche cron qui s'exécutera tous les minuits.

0 0 * * * /usr/bin/certbot renouveler> /dev/null 2>&1

Conclusion

Nous espérons que vous pourrez désormais déployer de manière transparente le certificat Let's Encrypt sur RHEL pour sécuriser le serveur Web Apache.

Lire aussi  :Comment renforcer et sécuriser le serveur Web NGINX sous Linux


Linux
  1. Comment configurer un serveur Web Apache

  2. Comment configurer plusieurs sites Web avec le serveur Web Apache

  3. Comment sécuriser Nginx avec SSL et Let's Encrypt dans FreeBSD

  4. Comment installer Let's Encrypt sur Ubuntu 20.04 avec Apache

  5. Comment sécuriser votre serveur Ubuntu avec le pare-feu CSF

Comment installer Apache avec Let's Encrypt SSL sur Ubuntu 20.04 LTS

Comment sécuriser Apache avec le certificat SSL Let's Encrypt sur CentOS 8

Comment évaluer les performances d'un serveur Web avec Apache Bench

Comment sécuriser Apache avec Let's Encrypt sur CentOS 8

Comment sécuriser Nginx avec Let's Encrypt sur Ubuntu 20.04

Comment sécuriser Apache avec Let's Encrypt sur Ubuntu 20.04