Dans cet article, nous vous expliquerons comment générer et installer un certificat SSL/TLS obtenu gratuitement auprès de Encryptons l’autorité de certification que nous utiliserons pour sécuriser les transactions HTTP du serveur Web Nginx sur RHEL et les distributions basées sur RHEL telles que Feutre, Rocheux Linux et AlmaLinux.
Si vous cherchez à installer Chiffrez pour Apache sur RHEL et les distributions basées sur RHEL, suivez ce guide ci-dessous :
[ You might also like: How to Install Let’s Encrypt SSL Certificate to Secure Apache on RHEL Systems ]
Conditions
- Un nom de domaine enregistré avec un
A
Enregistrements DNS pour pointer vers l’adresse IP publique du serveur. - Serveur Web Nginx installé avec SSL activé et les hôtes virtuels activés (uniquement pour l’hébergement de plusieurs domaines ou sous-domaines).
Configuration de notre environnement de test
Étape 1 : Installer le serveur Web Nginx dans les systèmes RHEL
1. À la première étape, au cas où vous n’auriez pas Nginx démon déjà installé, exécutez les commandes ci-dessous avec les privilèges root afin d’installer le serveur Web Nginx à partir des référentiels Epel.
------------- On RHEL, Rocky & AlmaLinux 9 ------------- # dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm ------------- On RHEL, Rocky & AlmaLinux 8 ------------- # dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm ------------- Install Nginx Web Server ------------- # yum install nginx
Noter: Les utilisateurs de Fedora n’ont pas besoin d’installer le référentiel epel.
Étape 2 : Installer Let’s Encrypt (Certbot) dans les systèmes RHEL
2. La méthode la plus rapide pour installer le client Let’s Encrypt sur les systèmes Linux consiste à installer certbot et python3-certbot-nginx packages du référentiel epel.
# dnf install certbot python3-certbot-nginx
3. Après le certbot 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 : Obtenir un certificat SSL Let’s Encrypt gratuit pour Nginx
4. Le processus d’obtention d’un Certificat SSL/TLS pour Nginx se fera manuellement en utilisant Let’s Encrypt Standalone brancher.
Cette méthode nécessite que le port 80 doit être libre pendant le temps Chiffrez 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
5. Il est maintenant temps d’obtenir un certificat SSL gratuit auprès de Chiffrez en exécutant le certbot commande 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 Or # certbot --nginx -d example.com -d www.example.com
6. Enfin, si tout s’est bien passé, un message d’information de félicitations s’affichera sur votre terminal bash. Le message s’affichera également lorsque le certificat expirera.
Étape 4 : Installer le certificat SSL Let’s Encrypt dans Nginx
9. Maintenant que vous possédez un Certificat SSL/TLSil est temps de l’installer sur le serveur Web Nginx pour que votre domaine puisse l’utiliser.
Tous les nouveaux certificats SSL sont placés dans /etc/letsencrypt/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 les identifier.
# sudo ls /etc/letsencrypt/live/ # sudo ls -al /etc/letsencrypt/live/your_domain.tld
dix. Pour installer les fichiers de certificat dans Nginx et activer SSL, ouvrez /etc/nginx/nginx.conf
fichier à éditer et ajoutez 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.conf
Extrait de bloc SSL Nginx :
# SSL configuration listen 443 ssl default_server; ssl_certificate /etc/letsencrypt/live/your_domain.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your_domain.tld/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
Remplace le nom de domaine chaîne pour que les certificats SSL correspondent à votre propre domaine.
11. Enfin, redémarrez Nginx service et visitez votre domaine via le protocole HTTPS à https://yourdomain
. La page doit se charger en douceur, sans aucune erreur de certificat.
# systemctl restart nginx # service nginx restart
12. Afin de vérifier la SSL/TLS certificat et sa rectitude visitez le lien suivant :
https://www.ssllabs.com/ssltest/analyze.html
13. Si vous recevez une notification indiquant que votre serveur prend en charge une version faible DH échange de clés et une note globale de B note, générer une nouvelle Diffie-Hellman chiffrer dans /etc/nginx/ssl/ répertoire pour protéger votre serveur contre les Embâcle attaque 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 longtemps et que vous n’êtes pas paranoïaque, vous devriez être en sécurité avec un 2048 clé de bit.
14. Après DH 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’élever le niveau de sécurité de votre domaine à un A+
noter.
# vi /etc/nginx/nginx.conf
Ajouter l’extrait de bloc suivant à Nginx.conf:
ssl_dhparam /etc/nginx/ssl/dhparams.pem; ssl_session_timeout 30m; ssl_session_cache shared:SSL:10m; ssl_buffer_size 8k; add_header Strict-Transport-Security max-age=31536000;
15. Redémarrer Nginx service pour appliquer les modifications et retester votre certificat SSL en effaçant le cache de résultats précédent à partir du lien mentionné ci-dessus.
# systemctl restart nginx # service nginx restart
Étape 5 : Renouveler automatiquement Nginx Free Lets Encrypt SSL Certificates
16. Chiffrons CA libère gratuitement SSL/TLS certificats valables pour 90 journées. Les certificats peuvent être renouvelés manuellement et appliqués avant expiration à l’aide du plug-in webroot, sans arrêter votre serveur Web, en exécutant les commandes ci-dessous :
# certbot --nginx -d example.com -d www.example.com # systemctl reload nginx
Lors de l’exécution de la commande ci-dessus, assurez-vous de remplacer le example.com
pour correspondre à votre domaine.
17. Afin de renouveler automatiquement le certificat avant son expiration, créez la tâche cron dans un fichier crontab existant.
# crontab -e
Ajoutez la tâche cron suivante au bas du fichier, qui s’exécutera tous les jours à midi pour vérifier l’expiration du certificat et le renouveler. La --quiet
L’option indique à certbot de ne pas générer de sortie.
0 12 * * * /usr/bin/certbot renew --quiet
C’est tout! À présent, Nginx serveur peut fournir un contenu Web sécurisé avec un SSL/TLS Encryptons certificat sur votre site Web.
Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer :
TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, de guides et de livres Linux sur le Web. Des millions de personnes visitent TecMint ! pour rechercher ou parcourir les milliers d’articles publiés accessibles GRATUITEMENT à tous.
Si vous aimez ce que vous lisez, pensez à nous acheter un café (ou 2) en signe d’appréciation.
Nous sommes reconnaissants pour votre soutien sans fin.