GNU/Linux >> Tutoriels Linux >  >> Debian

Sécurisez Apache2 avec Let's Encrypt SSL sur Debian 10/11

Aperçu

Dans l'article suivant, nous allons présenter la procédure pour sécuriser Apache2 avec Let's Encrypt SSL sur Debian 10 (cette procédure fonctionne également sur Debian 11). Le message présentera le scénario, où nous devons installer certbot sur notre machine Debian et obtenir le certificat SSL de Let's Encrypt, configurer la redirection HTTPS automatique et tester également le renouvellement du certificat. Ici, nous avons déjà une machine Debian avec Apache préinstallé sur laquelle nous allons suivre les étapes de sécurisation d'Apache2 avec let's encrypt ssl.

Exigences

1. Enregistrez et validez un nom de domaine pointant vers votre serveur Debian.

2. Serveur Debian 10 (ou Debian 11)

3. Serveur Web Apache installé et en cours d'exécution

4. Configuration du pare-feu (ports HTTP et HTTPS ouverts)

Si vous avez un pare-feu UFW ou IPTABLES, vous devez les configurer pour qu'ils ouvrent les ports 80 et 443 pour HTTP et HTTPS afin non seulement d'héberger votre site Web

UFW

sudo ufw allow http
sudo ufw allow https

IPTABLES

sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

or

sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Sécuriser Apache2 avec Let's Encrypt SSL sur Debian

Installation de certbot

Nous utiliserons l'outil Let's Encrypt Cerbot afin d'obtenir le certificat SSL et le plugin Apache2 pour certbot également. Les deux outils nous aideront à obtenir le certificat très facilement, rapidement et à effectuer les modifications de configuration nécessaires sur Apache2. En plus de cela, les outils ont les fonctionnalités d'automatisation, donc à l'expiration du SSL, ils peuvent renouveler et réinstaller le certificat.

sudo apt install certbot python3-certbot-nginx

Une remarque - avant d'exécuter la commande, il faut d'abord dans votre fichier de configuration nginx, écrire au paramètre ServerName le nom de domaine réel que vous avez pointé vers votre serveur. Certbot examinera ce paramètre dans la configuration de bloc de votre serveur et créera les fichiers de configuration de cryptage en fonction de ce paramètre. Exemple dans une image ci-dessous :

sudo nano /etc/apache2/sites-available/000-default.conf

Acquérir le certificat SSL de Let's Encrypt

Une fois que vous avez confirmé que les ports du pare-feu sont ouverts et que vous avez terminé l'installation du certbot. Pour acquérir le certificat SSL de Let's encrypt, il suffit d'exécuter la commande :

sudo certbot --apache -d yourdomain.com

Lorsque vous exécutez cette commande, l'assistant certbot démarre. Si vous exécutez le cerbot pour la première fois, il vous demandera d'abord de fournir une adresse e-mail à utiliser comme contact et d'accepter les termes de la licence de Let's encrypt.

Après cela, il lancera le challenge http, obtiendra le certificat et à la fin il vous demandera si vous le souhaitez pour configurer tout de suite la redirection https, qui est également une bonne option.

Dès que la configuration de la redirection est terminée, le nouveau domaine avec certificat SSL devrait fonctionner immédiatement.

Configurer et tester le renouvellement automatique

Les certificats Let's encrypt sont valides par défaut pendant trois mois et le renouvellement automatique du cerbot est configuré pour renouveler le certificat au moins une fois, lorsque le certificat a moins de 30 jours de validité. Une fois le certificat SSL acquis, valide et actif, doublez si le service de minuterie du certbot est actif et en cours d'exécution et testez le processus de renouvellement avec l'option de simulation :

sudo systemctl status certbot.timer

sudo certbot renew --dry-run

Vérifiez la configuration d'Apache

Vous pouvez revérifier la configuration d'Apache si le cerbot a écrit avec succès la configuration des certificats SSL et de la redirection HTTPS. Cerbot redémarrera Apache une fois la configuration terminée, votre domaine/site Web devrait être sécurisé et fonctionner avec le SSL actif.

Résumé

Pour résumer, nous avons suivi les étapes de sécurisation d'Apache2 avec Let's Encrypt SSL sur la machine Debian 10 et sur la machine Debian 11. Nous avons utilisé l'outil certbot de let's encrypt pour les demandes de certificat SSL et son renouvellement automatique. Heureusement pour certbot et son plugin Apache, le processus est vraiment simple et direct et rapide à compléter. Une suggestion à ce sujet est - ce serait une bonne option d'avoir une sauvegarde du dossier let's encrypt et de le sauvegarder fréquemment (comme certbot lui-même l'a suggéré). Ceci est bien sûr facultatif et dépend de la manière dont vous avez défini la fréquence de renouvellement des certificats.

Cryptons le service, même s'il est gratuit et très populaire dans le monde de la technologie, c'est une bonne option pour sécuriser certains types de sites Web. Cependant, il n'est pas recommandé d'utiliser leurs certificats gratuits sur les sites Web de commerce électronique par exemple ou sur tout type de site qui doit transmettre et stocker des données très sensibles (cartes de crédit et similaires). C'est pourquoi, par défaut, il est recommandé d'avoir un délai de renouvellement court pour les certificats SSL.


Debian
  1. Sécurisez Nginx avec Lets Encrypt sur CentOS 7

  2. Sécurisez Apache avec Lets Encrypt sur Debian 9

  3. Sécurisez Nginx avec Let's Encrypt SSL sur Debian 10/11

  4. Installer WordPress avec Nginx sur Debian 10/11

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

Comment installer Drupal avec Nginx et Let's Encrypt SSL sur Debian 11

Comment installer Joomla avec Nginx et Let's Encrypt SSL sur Debian 11

Comment installer Let's Encrypt SSL dans Nginx sur Debian 11

Comment installer WordPress avec Nginx et Let's Encrypt SSL sur Debian 11

Installez et configurez Webmin avec le certificat SSL Let's Encrypt gratuit sur Debian 10

Comment installer et configurer Apache avec Let's Encrypt TLS/SSL sur Debian 11 Bullseye