Recherche de site Web

Comment sécuriser Apache avec le certificat SSL gratuit Let's Encrypt sur Ubuntu et Debian


Vous avez un nom de domaine nouvellement enregistré et votre serveur Web fonctionne avec un certificat SSL auto-signé émis par vous, ce qui cause des maux de tête à vos clients lorsqu'ils visitent le domaine en raison des erreurs générées par le certificat ? Vous disposez d’un budget limité et vous n’avez pas les moyens d’acheter un certificat émis par une autorité de certification de confiance ? C’est à ce moment-là que le logiciel Let’s Encrypt entre en scène et sauve la situation.

Si vous souhaitez installer Let's Encrypt pour Apache ou Nginx sur RHEL, CentOS, Fedora ou Ubuntu et Debian, suivez ces guides ci-dessous :

Configurer Let's Encrypt pour sécuriser Apache sur RHEL et CentOS 7/6

Configurer Let's Encrypt pour sécuriser Nginx sur Ubuntu et Debian

Let's Encrypt est une autorité de certification (CA) qui vous facilite l'acquisition des certificats SSL/TLS gratuits nécessaires à votre serveur pour fonctionner en toute sécurité, offrant ainsi une expérience de navigation fluide à vos utilisateurs, sans aucune erreur.

Exemple d’environnement de test

Toutes les étapes requises pour générer un certificat sont, pour la plupart, automatisées pour le serveur Web Apache. Cependant, malgré le logiciel de votre serveur Web, certaines étapes doivent être effectuées manuellement et les certificats doivent être installés manuellement, en particulier si le contenu de votre site Web est servi par le démon Nginx.

Ce tutoriel vous expliquera comment installer le logiciel Let's Encrypt sur Ubuntu ou Debian, générer et obtenir un certificat gratuit pour votre domaine et comment vous pouvez installer manuellement le certificat sur les serveurs Web Apache et Nginx.

Exigences

  1. Un nom de domaine public enregistré avec des enregistrements A valides pour pointer vers l'adresse IP externe de votre serveur. Si votre serveur est derrière un pare-feu, prenez les mesures nécessaires pour garantir que votre serveur est accessible dans le monde entier depuis Internet en ajoutant des règles de redirection de port côté routeur.
  2. Serveur Web Apache installé avec le module SSL activé et l'hébergement virtuel activé, au cas où vous hébergez plusieurs domaines ou sous-domaines.

Étape 1 : Installez Apache et activez le module SSL

1. Si le serveur Web Apache n'est pas déjà installé sur votre ordinateur, exécutez la commande suivante pour installer le démon Apache.

sudo apt-get install apache2

2. L'activation du module SSL pour le serveur Web Apache sur Ubuntu ou Debian est assez simple. Activez le module SSL et activez l'hôte virtuel SSL par défaut d'Apache en exécutant les commandes ci-dessous :

sudo a2enmod ssl
sudo a2ensite default-ssl.conf
sudo service apache2 restart
or
sudo systemctl restart apache2.service

Les visiteurs peuvent désormais accéder à votre nom de domaine via le protocole HTTPS. Cependant, étant donné que le certificat auto-signé de votre serveur n'est pas émis par une autorité de certification de confiance, une alerte d'erreur s'affichera sur leurs navigateurs, comme illustré dans l'image ci-dessous.

https://yourdomain.com

Étape 2 : Installez gratuitement le client Let's Encrypt

3. Afin d'installer le logiciel Let's Encrypt sur votre serveur, vous devez avoir le package git installé sur votre système. Exécutez la commande suivante pour installer le logiciel git :

sudo apt-get -y install git

4. Ensuite, choisissez un répertoire dans la hiérarchie de votre système dans lequel vous souhaitez cloner le référentiel git Let's Encrypt. Dans ce didacticiel, nous utiliserons le répertoire /usr/local/ comme chemin d'installation pour Let's Encrypt.

Basculez vers le répertoire /usr/local et installez le client Letsencrypt en exécutant les commandes suivantes :

cd /usr/local
sudo git clone https://github.com/letsencrypt/letsencrypt

Étape 4 : Générer un certificat SSL pour Apache

5. Le processus d'obtention d'un certificat SSL pour Apache est automatisé grâce au plugin Apache. Générez le certificat en émettant la commande suivante sur votre nom de domaine. Fournissez votre nom de domaine en tant que paramètre de l'indicateur -d.

cd /usr/local/letsencrypt
sudo ./letsencrypt-auto --apache -d your_domain.tld

Par exemple, si vous avez besoin que le certificat fonctionne sur plusieurs domaines ou sous-domaines, ajoutez-les tous en utilisant l'indicateur -d pour chaque enregistrement DNS valide supplémentaire après le nom de domaine de base.

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld 

6. Acceptez la licence, saisissez une adresse e-mail à récupérer et choisissez si les clients peuvent parcourir votre domaine en utilisant les deux protocoles HTTP (sécurisés et non sécurisés) ou rediriger toutes les requêtes non sécurisées vers HTTPS.

7. Une fois le processus d'installation terminé avec succès, un message de félicitations s'affiche sur votre console vous informant de la date d'expiration et de la manière dont vous pouvez tester la configuration, comme illustré sur les captures d'écran ci-dessous.

Vous devriez maintenant pouvoir trouver vos fichiers de certificat dans le répertoire /etc/letsencrypt/live avec une simple liste de répertoires.

sudo ls /etc/letsencrypt/live

8. Enfin, pour vérifier l'état de votre certificat SSL, visitez le lien suivant. Remplacez le nom de domaine en conséquence.

https://www.ssllabs.com/ssltest/analyze.html?d=your_domain.tld&latest

De plus, les visiteurs peuvent désormais accéder à votre nom de domaine via le protocole HTTPS sans qu'aucune erreur n'apparaisse dans leur navigateur Web.

Étape 4 : Le renouvellement automatique permet de chiffrer les certificats

9. Par défaut, les certificats émis par l'autorité Let's Encrypt sont valables 90 jours. Afin de renouveler le certificat avant la date d'expiration, vous devez réexécuter manuellement le client en utilisant les indicateurs et paramètres exacts comme précédemment.

sudo ./letsencrypt-auto --apache -d your_domain.tld

Ou en cas de plusieurs sous-domaines :

sudo ./letsencrypt-auto --apache -d your_domain.tld  -d www. your_domain.tld

10. Le processus de renouvellement du certificat peut être automatisé pour s'exécuter moins de 30 jours avant la date d'expiration à l'aide du démon cron de planification Linux.

sudo crontab -e

Ajoutez la commande suivante à la fin du fichier crontab en utilisant une seule ligne :

0 1 1 */2 * cd /usr/local/letsencrypt && ./letsencrypt-auto certonly --apache --renew-by-default --apache -d domain.tld >> /var/log/domain.tld-renew.log 2>&1

11. Les détails sur le fichier de configuration de votre domaine de renouvellement pour le logiciel Let's Encrypt se trouvent dans le répertoire /etc/letsencrypt/renewal/.

cat /etc/letsencrypt/renewal/caeszar.tk.conf

Vous devez également vérifier le fichier /etc/letsencrypt/options-ssl-apache.conf pour afficher le nouveau fichier de configuration SSL pour le serveur Web Apache.

12. De plus, le plugin Let's Encrypt Apache modifie certains fichiers dans la configuration de votre serveur Web. Afin de vérifier quels fichiers ont été modifiés, répertoriez le contenu du répertoire /etc/apache2/sites-enabled.

ls /etc/apache2/sites-enabled/
sudo cat /etc/apache2/sites-enabled/000-default-le-ssl.conf

C'est tout pour le moment! Dans la prochaine série de didacticiels, nous expliquerons comment obtenir et installer un certificat Let's Encrypt pour le serveur Web Nginx sur Ubuntu et Debian< et sur CentOS également.