Comment installer le certificat SSL, Let's Encrypt pour sécuriser Nginx sur RHEL 9/8

Comment installer le certificat SSL, Let's Encrypt pour sécuriser Nginx sur RHEL 9/8

Dans cet article, nous vous guiderons sur la façon de générer et d'installer un certificat SSL / TLS obtenu gratuitement à partir de Cryptons l'autorité du certificat que nous allons utiliser pour sécuriser les transactions HTTP Ninx WebServer sur les distributions basées sur RHEL et RHEL telles que Feutre, Rocky Linux et Almalinux.

Si vous cherchez à installer Escryptons Pour Apache sur les distributions basées sur RHEL et RHEL, suivez ce guide ci-dessous:

[Vous pourriez également aimer: comment installer le certificat SSL, Let's Encrypt pour sécuriser Apache sur les systèmes RHEL]

Exigences

  • Un nom de domaine enregistré avec valide UN DNS enregistre pour pointer de l'adresse IP publique du serveur.
  • Le serveur Web Nginx installé avec des hôtes SSL activés et virtuels activés (uniquement pour plusieurs domaines ou sous-domaines Hosting).

Notre configuration d'environnement de test

Configuration des HTTPS avec LETS ECRYPT pour sécuriser Nginx sur RHEL

Étape 1: Installez le serveur Web Nginx dans RHEL Systems

1. Sur la première étape, au cas où vous n'auriez pas Nginx Daemon déjà installé, émettez les commandes ci-dessous avec les privilèges racine afin d'installer Nginx Webserver à partir des référentiels EPEL.

------------- Sur Rhel, Rocky & Almalinux 9 ------------- # dnf installer https: // dl.fedoraproject.org / pub / ePEL / ePel-Release-Latest-9.noarch.RPM ------------- Sur Rhel, Rocky & Almalinux 8 ------------- # dnf installer https: // dl.fedoraproject.org / pub / epel / epel-libérer lest-8.noarch.RPM ------------- Installez le serveur Web Nginx ------------- # yum install nginx 

Note: Les utilisateurs de Fedora n'ont pas besoin d'installer le référentiel EPEL.

Étape 2: Installer Let's Encrypt (certbot) dans Rhel Systems

2. La méthode la plus rapide pour installer le client Let's Encrypt sur les systèmes Linux est d'installer Certbot et python3-certbot-nginx Packages du référentiel EPEL.

# DNF Installer certbot python3-certbot-nginx 
Installez CERTBOT pour Nginx sur les systèmes RHEL

3. Après le Certbot Le client a été installé, vérifiez la version installée du logiciel Let's Encrypt en exécutant la commande ci-dessous:

# Certbot - Version Certbot 1.30.0 

Étape 3: Obtenez un certificat SSL Free Let's Encrypt pour Nginx

4. Le processus d'obtention d'un libre Certificat SSL / TLS pour Nginx sera fait manuellement en utilisant Cryptons autonomes brancher.

Cette méthode nécessite ce port 80 doit être libre pendant le temps Escryptons Le client valide l'identité du serveur et génère des certificats.

Donc, si Nginx est déjà en cours d'exécution, arrêtez le démon avec la commande suivante et exécutez l'utilitaire SS pour confirmer que le port 80 n'est plus utilisé dans la pile réseau.

# service nginx stop # systemctl stop nginx # ss -tln 
Vérifiez les ports du réseau d'écoute-

5. Il est maintenant temps d'obtenir un certificat SSL gratuit à partir de Escryptons En exécutant le Certbot commander avec --nginx Pour initialiser la récupération et la configuration du certificat de sécurité Let's Encrypt pour les domaines Nginx.

# CERTBOT --nginx ou # CERTBOT --nginx -D Exemple.com -d www.exemple.com 
Installer permet de crypter un certificat pour les domaines Nginx

6. Enfin, si tout s'est passé comme il se doit, un message d'informations de félicitations sera affiché sur votre terminal bash. Le message s'affiche également lorsque le certificat expirera.

LETSENCRYPRY FINITION D'INSTALLATION

Étape 4: Installez le certificat SSL, Let's Encrypt en Nginx

9. Maintenant que vous possédez un gratuit Certificat SSL / TLS, Il est temps de l'installer dans Nginx Webserver pour que votre domaine puisse l'utiliser.

Tous les nouveaux certificats SSL sont placés / etc / lesencrypt / live / sous un répertoire nommé d'après votre nom de domaine. Utilisez la commande LS pour répertorier les fichiers de certificat émis pour votre domaine et identifier.

# sudo ls / etc / lesencrypt / live / # sudo ls -al / etc / lesencrypt / live / your_domain.TLD 
Certificats SSL LETSENCRYPT

dix. Pour installer les fichiers de certificat dans nginx et activer SSL, ouvrez / etc / nginx / nginx.confli Fichier pour l'édition et ajouter les instructions ci-dessous après la dernière ligne d'écoute du bloc serveur. Utilisez l'illustration ci-dessous comme guide.

# vi / etc / nginx / nginx.confli 

Extrait Nginx SSL Block:

# Configuration SSL Écouter 443 SSL Default_Server; ssl_certificate / etc / lesencrypt / live / your_domain.TLD / Fullchain.pem; ssl_certificate_key / etc / lesencrypt / live / your_domain.TLD / Privkey.pem; SSL_PROTOCOLS TLSV1 TLSV1.1 TLSV1.2; ssl_prefer_server_ciphers sur; SSL_CIPHERS 'EECDH + AESGCM: EDH + AESGCM: AES256 + EECDH: AES256 + EDH'; 
Activer la configuration HTTPS sur Nginx

Remplace le nom de domaine chaîne pour les certificats SSL pour correspondre à votre propre domaine.

11. Enfin, redémarrez Nginx Service et visitez votre domaine via le protocole HTTPS à https: // yourDomain. La page doit se charger lisse, sans aucune erreur de certificat.

# systemctl redémarrage nginx # service nginx redémarrer 

12. Afin de vérifier le SSL / TLS Certificat et sa rectitude visiter le lien suivant:

https: // www.sllabs.com / ssltest / analyser.html 
Vérifier permet de crypter le certificat sur le domaine Vérifiez le certificat HTTPS SSL sur le domaine

13. Dans le cas où vous obtenez une notification que votre serveur prend en charge un faible Dh Échange clé et une note globale de B grade, générer un nouveau Diffie-hellman Cipher / etc / nginx / ssl / répertoire pour protéger votre serveur contre le Logjam Attaquez en exécutant les commandes suivantes.

# mkdir / etc / nginx / ssl # cd / etc / nginx / ssl # openssl dhparam -out dhparams.PEM 4096 

Dans cet exemple, nous avons utilisé un 4096 Bit Key, qui prend en fait beaucoup de temps à générer et met une surcharge supplémentaire sur votre serveur et sur la poignée de main SSL.

Dans le cas où il n'y a pas de besoin explicite d'utiliser une clé aussi longue et que vous n'êtes pas à paranoïaque, vous devriez être en sécurité avec un 2048 clés de bit.

14. Après Dh La clé a été générée, ouvrez le fichier de configuration Nginx et ajoutez les instructions ci-dessous après SSL_CIPHERS ligne afin d'ajouter la clé DH et d'augmenter le niveau de sécurité de votre domaine à un UN+ grade.

# vi / etc / nginx / nginx.confli 

Ajouter un extrait de bloc suivant pour Nginx.confli:

ssl_dhparam / etc / nginx / ssl / dhparams.pem; ssl_session_timeout 30m; SSL_SESSION_CACHE partagée: SSL: 10m; ssl_buffer_size 8k; add_header strict-transport-security max-age = 31536000; 
Ajouter des chiffres Diffie-Hellman à la configuration Nginx

15. Redémarrage Nginx Service pour appliquer les modifications et retester votre certificat SSL en effacant le cache de résultat précédent à partir du lien mentionné ci-dessus.

# systemctl redémarrage nginx # service nginx redémarrer 
Vérifiez le certificat SSL LETSECCRYPT sur le site Web

Étape 5: Auto Renew Nginx Free permet de crypter les certificats SSL

16. Saisissons Ca sorties gratuitement SSL / TLS certificats valides pour 90 jours. Les certificats peuvent être renouvelés manuellement et appliqués avant l'expiration à l'aide du plugin webroot, sans arrêter votre serveur Web, en émettant les commandes ci-dessous:

# CERTBOT --nginx -D Exemple.com -d www.exemple.com # SystemCTl Reload nginx 

Lors de l'exécution de la commande ci-dessus, assurez-vous de remplacer le exemple.com Pour correspondre à votre domaine.

17. Afin de renouer automatiquement le certificat avant son expiration.

# crontab -e 

Ajoutez le travail cron suivant au bas du fichier, qui s'exécutera tous les jours à midi pour vérifier l'expiration du certificat et le renouveler. Le --calme L'option indique à certificat de ne pas générer de sortie.

0 12 * * * / usr / bin / certbot renouveler --quiet 

C'est tout! Maintenant, Nginx Le serveur peut fournir du contenu Web sécurisé avec un SSL / TLS, cryptons certificat sur votre site Web.