Recherche de site Web

Sécurisez Apache avec le certificat SSL Lets Encrypt sur CentOS 8


La sécurisation de votre serveur Web est toujours l’un des facteurs clés à prendre en compte avant de lancer votre site Web. Un certificat de sécurité est essentiel pour sécuriser le trafic envoyé des navigateurs Web vers les serveurs Web et, ce faisant, il incitera les utilisateurs à échanger des données avec votre site Web en sachant que le trafic envoyé est sécurisé.

Dans la plupart des cas, les certificats de sécurité sont payés et renouvelés chaque année. Le certificat Let's Encrypt est une autorité de certification gratuite, ouverte et automatisée que vous pouvez utiliser pour chiffrer votre site. Le certificat expire tous les 90 jours et se renouvelle automatiquement sans frais.

Lecture recommandée : Comment sécuriser Nginx avec Let's Encrypt sur CentOS 8

Dans cet article, nous allons vous montrer comment installer le Certificat Let's Encrypt avec Certbot pour le serveur Web Apache et plus tard, configurer le certificat pour renouveler automatiquement sur CentOS 8.

Conditions préalables

Avant de commencer, assurez-vous que les éléments suivants sont en place :

1. Une instance du serveur CentOS 8 avec le serveur Web HTTP Apache installé et en cours d'exécution. Vous pouvez confirmer que votre serveur Web Apache est opérationnel.

sudo dnf install httpd
sudo systemctl status httpd

2. Un Nom de domaine complet (FQDN) pointant vers l'adresse IP publique de votre serveur Web sur votre fournisseur d'hébergement Web DNS. Pour ce guide, nous utiliserons linuxtechwhiz.info pointant vers l'IP du serveur 34.67.63.136.

Étape 1. Installez Certbot dans CentOS 8

Certbot est un client qui automatise l'installation du certificat de sécurité. Il récupère le certificat auprès de Autorité Let's Encrypt et le déploie sur votre serveur Web sans trop de problèmes.

Certbot est absolument gratuit et vous permettra d'installer le certificat de manière interactive en générant des instructions basées sur la configuration de votre serveur Web.

Avant de télécharger le certbot, installez d'abord les packages nécessaires à la configuration d'une connexion cryptée.

Nous commencerons par installer le référentiel EPEL qui fournit des packages supplémentaires de haute qualité pour les systèmes basés sur RHEL :

sudo dnf install epel-release

Ensuite, installez les packages mod_ssl et openssl.

sudo dnf install mod_ssl openssl

Une fois toutes les dépendances installées, installez Certbot et le module Apache pour Certbot.

sudo dnf install certbot python3-certbot-apache

La commande installe Certbot, le module Apache pour Certbot et d'autres dépendances.

Étape 2 : Créer un hôte virtuel Apache

La prochaine étape consistera à créer un fichier hôte virtuel pour notre domaine – linuxtechwhiz.info. Commencez par créer la racine du document où vous placerez vos fichiers HTML.

sudo mkdir /var/www/linuxtechwhiz.info.conf

Créez un fichier de test index.html comme indiqué.

sudo echo “<h1>Welcome to Apache HTTP server</h1>” > /var/www/linuxtechwhiz.info/index.html

Ensuite, créez un fichier hôte virtuel comme indiqué.

sudo vim /etc/httpd/conf.d/linuxtechwhiz.info

Ajoutez la configuration ci-dessous.

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
</VirtualHost>

Sauvegarder et quitter.

Attribuez les autorisations à la racine du document comme indiqué.

sudo chown -R apache:apache /var/www/linuxtechwhiz.info

Pour que les modifications prennent effet, redémarrez le service Apache.

sudo systemctl restart httpd

Étape 3 : Installez le certificat SSL Let's Encrypt sur CentOS 8

Exécutez maintenant certbot comme indiqué pour commencer l'installation du certificat Let's Encrypt.

sudo certbot --apache -d domain.com

Dans notre cas, ce sera :

sudo certbot --apache -d linuxtechwhiz.info

La commande vous guidera à travers une série d'invites pour vous permettre de configurer Lets Encrypt pour votre domaine. Assurez-vous de fournir votre adresse e-mail, acceptez les conditions d'utilisation et spécifiez les noms de domaine que vous souhaitez utiliser le protocole HTTPS qui est la version cryptée de HTTP.

Si tout s'est bien passé, vous devriez recevoir un message de félicitations à la fin vous informant que votre site a été sécurisé à l'aide du certificat Let's Encrypt. La validité de votre certificat sera également affichée, généralement 90 jours après le déploiement.

Revenez maintenant à votre fichier d’hôte virtuel et ajoutez les lignes de configuration suivantes.

SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem

Sauvegarder et quitter.

La configuration finale de l'hôte virtuel Apache ressemblera à ceci :

<VirtualHost *:443>
  ServerName linuxtechwhiz.info
  ServerAlias www.linuxtechwhiz.info
  DocumentRoot /var/www/linuxtechwhiz.info/
  <Directory /var/www/linuxtechwhiz.info/>
      Options -Indexes +FollowSymLinks
      AllowOverride All
  </Directory>
  ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
  CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined

 SSLEngine On
 SSLCertificateFile    /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
 SSLCertificateKeyFile  /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
</VirtualHost>

Encore une fois, redémarrez Apache.

sudo systemctl restart httpd

Étape 4 : Vérification du certificat SSL Let's Encrypt

Pour vérifier que tout fonctionne, lancez votre navigateur et visitez l’adresse IP de votre serveur. Vous devriez maintenant voir un symbole de cadenas au début de l'URL.

Pour obtenir plus de détails, cliquez sur le symbole cadenas et cliquez sur l'option « Certificat » dans le menu déroulant qui apparaît.

Les détails du certificat seront affichés dans la fenêtre contextuelle suivante.

Vous pouvez également tester votre serveur sur https://www.ssllabs.com/ssltest/ et votre site devrait obtenir une note 'A' comme indiqué.

Étape 5 : Renouvellement automatique du certificat SSL Let's Encrypt

Let's Encrypt n'est valable que pendant 90 jours. Habituellement, le processus de renouvellement est effectué par le package certbot qui ajoute un script de renouvellement au répertoire /etc/cron.d. Le script s'exécute deux fois par jour et renouvellera automatiquement tout certificat dans les 30 jours suivant son expiration.

Pour tester le processus de renouvellement automatique, effectuez un test d'exécution avec certbot.

sudo /usr/local/bin/certbot-auto renew --dry-run

Si aucune erreur n’a été rencontrée, cela signifie que vous êtes prêt à partir.

Cela nous amène à la fin de ce guide. Dans ce guide, nous avons montré comment utiliser certbot pour installer et configurer le certificat Let's Encrypt sur un serveur Web Apache exécuté sur un système CentOS 8.