GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer Let's Encrypt sur CentOS 8 avec Nginx

Dans ce tutoriel, nous allons vous expliquer comment installer un certificat SSL Let’s Encrypt gratuit sur un VPS CentOS 8 avec Nginx comme serveur web.

Let's Encrypt est une autorité de certification gratuite, open source et à but non lucratif qui fournit des certificats SSL gratuits pour les sites Web afin d'activer le cryptage TLS. Il a été développé par l'Internet Security Research Group (ISRG) et approuvé par tous les principaux navigateurs. Il est utilisé pour automatiser le processus de création, de validation, de signature, de mise en œuvre et de renouvellement des certificats pour les sites Web sécurisés.

L'objectif principal de Let's Encrypt est de promouvoir l'utilisation de SSL sur le Web et d'établir des connexions cryptées sur Internet, en protégeant tout le monde au cours du processus. Le certificat n'est valable que 90 jours, vous devrez donc le renouveler manuellement ou configurer le système de renouvellement automatique, qui doit être activé par défaut.

Actuellement, Let's encrypt prend en charge l'émission automatisée de certifications pour Apache, Nginx, Plex et HAproxy, ce qui devrait couvrir presque tous les cas d'utilisation. Commençons par notre guide d'installation.

Prérequis

  • Pour les besoins de ce didacticiel, nous utiliserons un VPS CentOS 8.
  • Un accès root SSH complet ou un utilisateur avec des privilèges sudo est également requis. Nos VPS sont tous livrés avec un accès root inclus par défaut sans frais supplémentaires.
  • Un nom de domaine valide pointe vers votre adresse IP VPS.

Étape 1 :se connecter et mettre à jour les packages

Tout d'abord, nous allons devoir nous connecter à notre serveur en utilisant SSH. Vous pouvez le faire en saisissant cette commande :

ssh root@IP_Address -p Port_Number

N'oubliez pas de remplacer "root" par votre nom d'utilisateur si vous n'utilisez pas l'utilisateur root. Modifiez "IP_Address" et "Port_Number" en fonction de l'adresse IP et du numéro de port SSH de votre serveur. Le numéro de port SSH par défaut est 22.

Une fois connecté, vous devez mettre à jour tous vos packages vers leurs dernières versions disponibles.

dnf update -y

Une fois les mises à jour terminées, redémarrez votre système pour appliquer les modifications.

Étape 2 :Installer Nginx et PHP

Tout d'abord, installez le serveur Web Nginx et PHP en exécutant la commande suivante :

dnf install nginx php php-fpm php-cli -y

Une fois tous les packages installés, démarrez les services Nginx et PHP-FPM et activez-les au démarrage avec la commande suivante :

systemctl start nginx
systemctl enable nginx
systemctl start php-fpm
systemctl enable php-fpm

Étape 3 :Configurer PHP-FPM

Par défaut, PHP-FPM est configuré pour s'exécuter en tant qu'utilisateur et groupe Apache. Dans ce tutoriel, nous utiliserons le serveur Web Nginx. Cela signifie que vous devrez configurer PHP-FPM pour qu'il s'exécute en tant qu'utilisateur et groupe Nginx.

Pour cela, éditez le fichier de configuration PHP-FPM :

nano /etc/php-fpm.d/www.conf

Modifiez la valeur de l'utilisateur et du groupe à partir de apache en nginx , comme indiqué ci-dessous :

user = nginx
group = nginx

Enregistrez et fermez le fichier lorsque vous avez terminé. Redémarrez ensuite le service PHP-FPM pour appliquer les modifications :

systemctl restart php-fpm

Étape 4 :Créer un hôte virtuel Nginx

Avant de commencer, créez un exemple de site Web pour Nginx.

mkdir /var/www/html/yourdomain.com

Ensuite, créez un exemple de fichier PHP dans le répertoire du site Web et ouvrez-le avec votre éditeur de texte préféré :

nano /var/www/html/yourdomain.com/index.php

Ajoutez les lignes suivantes au fichier :

<?php
phpinfo();
?>

Enregistrez et fermez le fichier, puis définissez la propriété de votre site Web sur nginx avec la commande suivante :

chown -R nginx:nginx /var/www/html/yourdomain.com/

Ensuite, créez un nouveau fichier de configuration d'hôte virtuel Nginx qui servira votre site Web :

nano /etc/nginx/conf.d/yourdomain.com.conf

Ajoutez les lignes suivantes :

server {
server_name yourdomain.com;
root /var/www/html/yourdomain.com;
location / {
index index.php;
}
access_log /var/log/nginx/yourdomain.access.log;
error_log /var/log/nginx/yourdomain.error.log;
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}

Assurez-vous de remplacer toutes les instances de yourdomain avec votre nom de domaine enregistré.

Enregistrez et fermez le fichier, puis vérifiez le fichier de configuration Nginx pour toute erreur de syntaxe avec la commande suivante :

nginx -t

Vous devriez voir le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, redémarrez le service Nginx pour appliquer les modifications de configuration :

systemctl restart nginx

Votre serveur Web devrait maintenant être opérationnel.

Étape 5 :Installer le client Certbot

Afin de générer un certificat Let's Encrypt pour votre site Web, vous devrez installer le client Certbot sur votre système.

Le Certbot est un outil en ligne de commande utilisé pour simplifier le processus d'obtention et de renouvellement des certificats SSL Let's Encrypt pour votre site Web.

Par défaut, le package Certbot n'est pas disponible dans le référentiel standard CentOS. Vous devrez donc le télécharger à partir du site Web du fournisseur.

Vous pouvez le télécharger et l'installer avec la commande suivante :

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Une fois le Certbot installé, exécutez la commande suivante pour obtenir et installer un certificat SSL pour votre site Web :

certbot-auto --nginx -d yourdomain.com

La commande ci-dessus installera d'abord toutes les dépendances requises sur votre serveur. Une fois installé, il vous sera demandé de fournir une adresse e-mail et d'accepter les conditions d'utilisation, comme indiqué ci-dessous :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): [email protected]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - -  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N

Tapez N si vous ne souhaitez pas partager votre e-mail avec l'EFF, puis appuyez sur Entrée pour continuer. Une fois le certificat installé, vous devriez voir la sortie suivante :

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for yourdomain.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/yourdomain.com.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/yourdomain.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://yourdomain.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=yourdomain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/yourdomain.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/yourdomain.com/privkey.pem
Your cert will expire on 2020-08-30. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again with the "certonly" option. To non-interactively renew *all*
of your certificates, run "certbot-auto renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
Donating to EFF:                    https://eff.org/donate-le
- We were unable to subscribe you the EFF mailing list because your
e-mail address appears to be invalid. You can try again later by
visiting https://act.eff.org.

Maintenant, votre site Web est sécurisé avec Let's Encrypt SSL. Vous pouvez tester votre certificat SSL à l'aide d'un outil en ligne.

Étape 6 :Accédez à votre site Web

Maintenant, ouvrez votre navigateur Web et accédez à votre site Web en toute sécurité à l'aide de l'URL https://yourdomain.com .

Vous devriez voir la page suivante :

Dans la page ci-dessus, vous devriez pouvoir voir que le site est correctement sécurisé, généralement avec une icône de cadenas vert sur le bord gauche de la barre d'adresse.

Étape 7 :Configurer le renouvellement automatique

Maintenant que nous avons installé Let's Encrypt sur notre VPS CentOS 8, nous devons nous assurer que notre certificat reste renouvelé et valide.

Par défaut, les certificats Let's Encrypt sont valides pendant 90 jours. Il est recommandé de renouveler le certificat avant son expiration, car un certificat expiré donnera aux utilisateurs un avertissement de sécurité lorsqu'ils essaieront de visiter votre site Web.

Vous pouvez tester le processus de renouvellement manuellement avec la commande suivante.

certbot-auto renew --dry-run

La commande ci-dessus vérifiera automatiquement les certificats actuellement installés et tentera de les renouveler s'ils sont à moins de 30 jours de la date d'expiration.

Vous pouvez également ajouter un cronjob pour exécuter automatiquement la commande ci-dessus deux fois par jour.

Pour cela, éditez le fichier crontab avec la commande suivante :

crontab -e

Ajoutez la ligne suivante :

* */12 * * *   root /usr/local/bin/certbot-auto renew >/dev/null 2>&1

Vous pouvez toujours modifier l'intervalle de ce cronjob si deux fois par jour est trop souvent en ajustant les valeurs à l'extrême gauche.

Enregistrez et fermez le fichier. Désormais, votre certificat sera renouvelé régulièrement. Toutes nos félicitations! Vous avez maintenant installé Let's Encrypt sur votre serveur CentOS 8 avec Nginx.

La configuration d'un site Web avec tous les plugins et fonctionnalités dont vous avez besoin peut prendre beaucoup de temps et d'efforts que vous pourriez consacrer à la gestion de votre entreprise. Si vous utilisez l'un de nos services d'hébergement CentOS 8 gérés, nous ferons tout le gros travail pour vous. De la maintenance du serveur aux demandes d'installation et de configuration, nous couvrons tout ce dont vous avez besoin pour maintenir votre serveur en parfait état, le tout sans frais supplémentaires.

Si ce tutoriel vous a aidé à configurer votre site Web Nginx avec SSL sur votre VPS CentOS 8, pensez à laisser un commentaire dans notre section commentaires ou partagez ce message sur les réseaux sociaux en utilisant nos raccourcis de partage. Merci.


Cent OS
  1. Sécurisez Nginx avec Lets Encrypt sur CentOS 7

  2. Comment installer WordPress avec Nginx sur CentOS 7

  3. Comment installer phpMyAdmin avec Nginx sur CentOS 7

  4. Comment installer Let's Encrypt (Certbot) sur CentOS 8 ?

  5. Comment installer Let's Encrypt sur CentOS 8 avec Nginx

Comment installer Nginx avec PHP-FastCGI sur CentOS 6

Comment installer Magento avec Nginx sur CentOS 7

Comment installer Let's Encrypt SSL avec Nginx sur CentOS 7

Comment installer Let's Encrypt SSL avec Apache sur CentOS 7

Comment installer Let's Encrypt SSL avec Lighttpd sur CentOS 7

Comment installer Nginx avec Let's Encrypt SSL sur Fedora 35