Recherche de site Web

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


Fondé en avril 2016 par l'Electronic Frontier Foundation (EFF), Let's Encrypt est un certificat numérique gratuit et automatisé qui fournit un cryptage TLS pour les sites Web, sans aucun frais.

L’objectif du certificat Let’s Encrypt est d’automatiser la validation, la création, la signature ainsi que le renouvellement automatique du certificat de sécurité. Ce certificat permet des connexions cryptées aux serveurs Web à l'aide du protocole HTTPS d'une manière simple, sans tracas et sans aucune complexité. Le certificat n'est valable que 90 jours, après quoi le renouvellement automatique peut être activé.

Lecture recommandée :Comment sécuriser Apache avec le certificat SSL Let's Encrypt sur CentOS 8

Dans cet article, nous allons montrer comment installer Let's Encrypt pour obtenir un certificat SSL gratuit afin de sécuriser le serveur Web Nginx sur CentOS 8 ( les mêmes instructions fonctionnent également sur RHEL 8). Nous vous expliquerons également comment renouveler automatiquement votre certificat SSL.

Conditions préalables

Avant de procéder, assurez-vous que vous avez vérifié les éléments suivants.

1. Un Nom de domaine complet (FQDN) pointant vers une adresse IP dédiée du serveur Web. Cela doit être configuré dans la zone client de votre fournisseur d'hébergement Web DNS. Pour ce tutoriel, nous utilisons le nom de domaine linuxtechwhiz qui pointe vers l'adresse IP 34.70.245.117.

2. Vous pouvez également le confirmer en effectuant une recherche directe à l'aide de la commande dig, comme indiqué.

dig linuxtechwhiz.info

3. Nginx installé et exécuté sur le serveur Web. Vous pouvez le confirmer en vous connectant au terminal et en exécutant la commande ci-dessous. Si Nginx n'est pas installé, suivez notre article pour installer Nginx sur CentOS 8.

sudo systemctl status nginx

4. Vous pouvez également vérifier en visitant l'URL du serveur Web sur un navigateur Web.

http://server-IP-or-hostname

D’après l’URL, nous pouvons clairement voir que le site n’est pas sécurisé, et donc non crypté. Cela implique que toutes les demandes adressées au serveur Web peuvent être interceptées et qu'elles incluent des informations critiques et confidentielles telles que les noms d'utilisateur, les mots de passe, les numéros de sécurité sociale et les informations de carte de crédit, pour n'en citer que quelques-unes.

Maintenant, mettons la main à la pâte et installons Let's Encrypt.

Étape 1. Installez Certbot dans CentOS 8

Pour installer le certificat Let's Encrypt, vous devez tout d'abord avoir certbot installé. Il s'agit d'un client extensible qui récupère un certificat de sécurité auprès de Let's Encrypt Authority et vous permet d'automatiser la validation et la configuration du certificat pour une utilisation par le serveur Web.

Téléchargez certbot à l'aide de la commande curl.

sudo curl -O https://dl.eff.org/certbot-auto

Ensuite, déplacez le certificat vers le répertoire /usr/local/bin.

sudo mv certbot-auto /usr/local/bin/certbot-auto

Ensuite, attribuez l'autorisation de fichier au fichier certbot comme indiqué.

chmod 0755 /usr/local/bin/certbot-auto

Étape 2. Configurer le bloc du serveur Nginx

Un bloc serveur dans Nginx est l'équivalent d'un hôte virtuel dans Apache. La configuration de blocs de serveur vous permet non seulement de configurer plusieurs sites Web sur un seul serveur, mais permet également à certbot de prouver la propriété du domaine à l'Autorité de certification – CA.

Pour créer un bloc serveur, exécutez la commande affichée.

sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info

Assurez-vous de remplacer le nom de domaine par votre propre nom de domaine. Collez ensuite la configuration ci-dessous.

server {
   server_name www.linuxtechwhiz.info;
   root /opt/nginx/www.linuxtechwhiz.info;

   location / {
       index index.html index.htm index.php;
   }

   access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
   error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;

   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

Enregistrez le fichier et quittez l'éditeur de texte.

Étape 3 : Installer le certificat Lets Encrypt sur CentOS 8

Utilisez maintenant la commande certbot pour initialiser la récupération et la configuration du certificat de sécurité Let's Encrypt.

sudo /usr/local/bin/certbot-auto --nginx

Cette commande exécutera et installera plusieurs packages Python et leurs dépendances, comme indiqué.

Ceci sera ensuite suivi d'une invite interactive comme indiqué :

Si tout s’est bien passé, vous devriez pouvoir voir un message de félicitations à la toute fin.

Pour confirmer que votre site Nginx est crypté, rechargez la page Web et observez le symbole du cadenas au début de l'URL. Cela indique que le site est sécurisé à l'aide d'un cryptage SSL/TLS.

Pour obtenir plus d'informations sur le certificat de sécurité, cliquez sur le symbole du cadenas et sélectionnez l'option « Certificat ».

Plus d'informations sur le certificat de sécurité seront affichées comme indiqué ci-dessous.

De plus, pour tester la solidité du certificat de sécurité, rendez-vous sur https://www.ssllabs.com/ssltest/ et trouvez une analyse plus précise et approfondie de l'état du certificat de sécurité.

Étape 4. Renouvellement du certificat Let's Encrypt

Comme nous l'avons vu précédemment, le certificat de sécurité n'est valable que pour une durée de 90 jours et doit être renouvelé avant l'expiration.

Vous pouvez simuler ou tester le processus de renouvellement du certificat en exécutant la commande :

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

Conclusion

Ceci conclut ce didacticiel sur la sécurisation de Nginx avec Let's Encrypt sur CentOS 8. Let's Encrypt offre un moyen efficace et simple de sécuriser votre serveur Web Nginx, ce qui serait autrement une affaire complexe à réaliser manuellement.

Votre site devrait maintenant être entièrement crypté. Quelques semaines avant la date d'expiration du certificat, EFF vous alertera par e-mail pour renouveler le certificat afin d'éviter toute interruption pouvant survenir en raison d'un certificat expiré. C'est tout les gars pour aujourd'hui !