GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment sécuriser Nginx avec Lets Encrypt sur Ubuntu 20.04 / 18.04

Présentation

Tout site Web qui aspire à attirer des visiteurs doit inclure le cryptage SSL/TLS pour son domaine. Les certificats SSL/TLS garantissent une connexion sécurisée entre votre serveur Web et les navigateurs.

Let's Encrypt est une autorité de certification gratuite qui permet de mettre en place une telle protection. C'est le moyen le plus simple de sécuriser votre serveur Nginx.

Dans cet article, vous trouverez le moyen le plus simple de sécuriser votre serveur Nginx en obtenant des certificats Let's Encrypt à l'aide du logiciel Certbot.

Prérequis

  • Un système exécutant Ubuntu 20.04 (ou Ubuntu 18.04)
  • Accès à une fenêtre de terminal/ligne de commande
  • Sudo ou racine privilèges sur les machines locales/distantes
  • Nginx installé et configuré
  • Un nom de domaine enregistré
  • Un bloc de serveur configuré pour ce nom de domaine

Comment sécuriser Nginx avec Let's Encrypt sur Ubuntu 20.04

Étape 1 :Installer Certbot

Certbot est un outil logiciel open source permettant d'activer automatiquement HTTPS à l'aide de certificats Let's Encrypt.

La première étape pour sécuriser Nginx avec Let's Encrypt consiste à installer Certbot. Pour ce faire, commencez par ouvrir une fenêtre de terminal et mettez à jour le dépôt local :

sudo apt update

Ensuite, téléchargez et installez Certbot et son plugin Nginx en exécutant :

sudo apt install certbot python3-certbot-nginx

Tapez y pour confirmer l'installation et appuyez sur Entrée.

Étape 2 :Vérifier la configuration de Nginx

Comme indiqué dans les prérequis, vous devriez déjà avoir un domaine enregistré et un bloc de serveur Nginx pour ce domaine. À titre d'exemple, cet article utilise le domaine example.com .

Pour vérifier s'il est correctement configuré, ouvrez le fichier de configuration Nginx :

sudo nano /etc/nginx/sites-available/example.com

Ensuite, localisez le server_name directive et assurez-vous qu'elle est définie sur votre nom de domaine. Comme vous souhaitez inclure le nom de domaine avec et sans le www. préfixe, la ligne doit ressembler à celle ci-dessous :

server_name example.com www.example.com;

Étape 3 :Ajustez le pare-feu pour autoriser le trafic HTTPS

L'étape suivante consiste à ajuster le pare-feu pour autoriser le trafic HTTPS.

Si vous avez suivi le guide d'installation de Nginx, vous avez déjà activé votre pare-feu pour autoriser Nginx HTTP. Lorsque vous ajoutez des certificats Let's Encrypt, vous devez configurer le pare-feu pour le trafic chiffré.

1. Pour vous assurer que votre pare-feu est actif et autorise le trafic HTTPS, exécutez la commande :

sudo ufw status

La sortie doit vous indiquer que UFW est actif et vous donner une liste des règles définies. Dans l'exemple suivant, cela montre que le pare-feu autorise le trafic HTTP Nginx, mais pas HTTPS.

Nginx a trois (3) profils que vous pouvez ajouter en tant que règles :

  • HTTP Nginx (ouvre le port 80)
  • HTTPS Nginx (ouvre le port 443 – trafic crypté)
  • Nginx complet (ouvre les ports 80 et 443)

2. Pour autoriser le trafic chiffré, vous pouvez soit ajouter le Nginx HTTPS profil ou utilisez Nginx Full et supprimez la règle HTTP Nginx existante :

a) Autorisez le trafic HTTPS Nginx en exécutant la commande :

sudo ufw allow 'Nginx HTTPS'

b) Supprimez Nginx HTTP et utilisez plutôt Nginx Full avec :

sudo ufw deny 'Nginx HTTP'
sudo ufw allow 'Nginx Full'

3. Vérifiez que vous avez ajouté une règle qui autorise le trafic HTTPS en utilisant le ufw status commande.

Étape 4 :Obtenir le certificat SSL/TLS

Le plugin de Nginx pour Certbot reconfigure Nginx et recharge sa configuration si nécessaire. Par conséquent, la seule chose que vous devez faire est de générer des certificats avec le plug-in NGINX.

1. Pour cela, lancez la commande :

sudo certbot --nginx -d example.com -d www.example.com

2. La sortie vous demande de configurer vos paramètres HTTPS. Saisissez votre adresse e-mail et acceptez les conditions d'utilisation pour continuer.

3. Une fois que vous avez configuré HTTPS, Certbot termine la génération du certificat et recharge Nginx avec les nouveaux paramètres.

4. Enfin, la sortie indique que vous avez généré avec succès un certificat et spécifie l'emplacement du certificat sur votre serveur.

Étape 5 :Activer le renouvellement automatique du certificat

Étant donné que les certificats Let's Encrypt expirent tous les 90 jours, Nginx recommande de configurer et de renouveler automatiquement la tâche cron.

1. Commencez par ouvrir le fichier de configuration crontab pour l'utilisateur actuel :

crontab -e

2. Ajoutez une tâche cron qui exécute le certbot commande, qui renouvelle le certificat si elle détecte que le certificat expirera dans les 30 jours. Programmez-le pour qu'il s'exécute quotidiennement à une heure précise (dans cet exemple, il le fait à 05h00) :

0 5 * * * /usr/bin/certbot renew --quiet

La tâche cron doit également inclure le --quiet attribut, comme dans la commande ci-dessus. Cela indique au certbot de n'inclure aucune sortie après l'exécution de la tâche.

3. Une fois que vous avez ajouté la tâche cron, enregistrez les modifications et quittez le fichier.


Ubuntu
  1. Sécurisez Nginx avec Lets Encrypt sur Ubuntu 18.04

  2. Sécuriser Nginx avec Let's Encrypt sur Ubuntu 18.04 - Comment faire ?

  3. Comment sécuriser Nginx avec Letsencrypt sur Ubuntu 20.04

  4. Comment sécuriser Nginx avec Let's Encrypt sur Ubuntu 20.04

  5. Comment sécuriser Apache avec Lets Encrypt sur Ubuntu 18.04

Comment installer Grav CMS avec Nginx et Lets Encrypt sur Ubuntu 18.04 LTS

Comment installer Webmin et le sécuriser avec Lets Encrypt SSL sur Ubuntu 20.04 LTS

Comment installer Moodle avec Nginx et Lets Encrypt SSL sur Ubuntu 20.04

Comment installer SonarQube avec Lets Encrypt sur Ubuntu 20.04

Comment sécuriser Nginx avec Let's Encrypt sur Ubuntu 20.04

Comment sécuriser votre site Web avec Let's Encrypt sur Ubuntu 20.04