GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment activer facilement TLS 1.3 dans Nginx sur Ubuntu 20.04, 18.04, 16.04

Dans un article précédent, j'ai expliqué les étapes de compilation du code source Nginx avec OpenSSL 1.1.1 afin d'activer le protocole TLS 1.3, qui a été officiellement publié en août 2018. Dans ce tutoriel, je vais vous montrer une manière plus simple d'activer TLS 1.3 sur Ubuntu 20.04, 18.04 et 16.04

TLS 1.3 améliore les performances et la sécurité

En termes de performances, TLS 1.2 a besoin de deux allers-retours pour établir une connexion HTTPS. Avec TLS 1.3, un seul aller-retour est nécessaire. TLS 1.3 prend également en charge le mode zéro aller-retour (reprise de session 0-RTT), permettant aux clients qui se sont déjà connectés à votre site Web d'envoyer une requête HTTP sur le premier message au serveur. Cela fait une grande différence pour les utilisateurs sur les réseaux mobiles ou dans des endroits éloignés.

En termes de sécurité, TLS 1.3 a supprimé la prise en charge des anciennes suites de chiffrement, responsables d'exploits tels que l'attaque ROBOT. Ceci, bien sûr, est une explication simpliste. CloudFlare a une bonne explication détaillée de TLS 1.3.

Conditions requises pour activer TLS 1.3

Il y a deux exigences pour activer TLS 1.3 avec Nginx.

  1. Votre version de Nginx doit prendre en charge TLS 1.3. Cela signifie Nginx 1.13 ou supérieur.
  2. Nginx doit être compilé avec OpenSSL 1.1.1 ou supérieur.

Ubuntu 18.04 et 20.04 sont livrés avec OpenSSL 1.1.1

OpenSSL 1.1.1 est inclus dans les référentiels Ubuntu 18.10 et 20.04 et le package Nginx du référentiel Ubuntu 18.10/20.04 est construit avec OpenSSL 1.1.1.

Lorsque Ubuntu 18.04 est sorti pour la première fois, il n'était livré qu'avec OpenSSL 1.0.2. Cependant, OpenSSL 1.1.1 est rétroporté vers Ubuntu 18.04.3.

Si vous utilisez toujours Ubuntu 18.04.2, exécutez simplement les commandes suivantes pour effectuer la mise à niveau vers 18.04.3.

sudo apt update 
sudo apt upgrade

Installez la dernière version de Nginx construite avec OpenSSL 1.1.1 sur Ubuntu 16.04

Le package Nginx du référentiel Ubuntu 16.04 n'est pas construit avec OpenSSL 1.1.1. Vous pouvez compiler manuellement Nginx avec OpenSSL 1.1.1, mais cela prend plus de temps et vous devez recompiler lorsqu'une nouvelle version de Nginx sort. Heureusement, nous pouvons installer Nginx à partir d'un PPA (archive de paquets personnels) par Ondřej Surý, qui est un développeur Debian et une figure importante de la communauté DNS. Il maintient de nombreux packages pour le référentiel Debian, notamment Apache, BIND, MariaDB, PHP, etc. Il est également l'un des mainteneurs du certbot officiel PPA. J'ai donc confiance en son PPA et je l'utilise sur mes serveurs.

Si vous avez déjà ajouté un autre référentiel Nginx (comme nginx.org), désactivez-le. Par exemple, j'ai un autre référentiel Nginx défini dans /etc/apt/sources.list.d/nginx-repo.list dossier. Je commente simplement toutes les lignes de ce fichier pour le désactiver.

Pour ajouter Ondřej Surý Nginx PPA sur Ubuntu, exécutez la commande suivante.

sudo add-apt-repository ppa:ondrej/nginx

sudo apt update

Supprimez ensuite votre package Nginx existant. (Vos fichiers de configuration Nginx ne seront pas supprimés.)

sudo apt remove nginx

Si vous utilisez iRedMail et Nginx, exécutez sudo apt remove nginx-full pour supprimer Nginx.

Et installez Nginx depuis PPA.

sudo apt install nginx

Lorsqu'on vous demande si vous souhaitez installer une nouvelle version du fichier de configuration, choisissez N . Votre plug-in certbot Nginx peut être supprimé avec Nginx, alors réinstallez-le.

sudo apt install python3-certbot-nginx

Vérifiez maintenant la version de Nginx.

sudo nginx -V

Vous devriez voir que Nginx est construit avec OpenSSL 1.1.1.

nginx version: nginx/1.14.1
built with OpenSSL 1.1.1 11 Sep 2018 (running with OpenSSL 1.1.0g 2 Nov 2017)
TLS SNI support enabled

Ce PPA fournit également OpenSSL 1.1.1 pour Ubuntu 16.04. Si votre Nginx sur Ubuntu 16.04 fonctionne toujours avec OpenSSL 1.1.0, vous devez mettre à niveau votre package OpenSSL.

sudo apt upgrade

Notez que si vous utilisez le moteur de calcul Google, vous verrez le message suivant lors de l'exécution de la commande ci-dessus.

The following packages have been kept back:
     libssl1.1 openssl

En effet, le package OpenSSL 1.1.1 est en conflit avec certains packages de moteur de calcul Google. Vous devrez exécuter la commande suivante pour mettre à niveau OpenSSL.

sudo apt dist-upgrade

Activer TLS 1.3 dans l'hôte virtuel Nginx sur Ubuntu 20.04, 18.04 et 16.04

Une fois que vous avez Nginx avec OpenSSL 1.1.1, ouvrez votre fichier d'hôte virtuel Nginx.

sudo nano /etc/nginx/conf.d/site.conf

ou

sudo nano /etc/nginx/sites-enabled/site.conf

Pour activer TLS 1.3, ajoutez simplement TLSv1.3 à ssl_protocols directive dans le bloc de serveur SSL.

ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

Si vous utilisez le certificat Let's Encrypt, votre configuration SSL peut être définie dans /etc/letsencrypt/options-ssl-nginx.conf dossier. Au fait, certbot active par défaut TLSv1 , qui n'est pas sécurisé, vous pouvez le supprimer. Si vous utilisez iRedMail et Nginx, vous devez modifier les configurations SSL dans /etc/nginx/templates/ssl.tmpl fichier.

Enregistrez et fermez le fichier. Redémarrez ensuite Nginx pour que la modification prenne effet.

sudo systemctl restart nginx

Vérification de la version TLS dans le navigateur Web

À l'aide de Firefox 63 ou supérieur, rechargez votre page Web, faites un clic droit sur une zone vide et sélectionnez View Page Info dans le menu contextuel. Allez dans Security et vous verrez que TLS 1.3 est utilisé.

À l'aide de Google Chrome 70 ou supérieur, rechargez une page Web sur votre site. Appuyez ensuite sur Ctrl+Alt+I pour ouvrir les outils de développement. Allez dans Security et vous verrez que TLS 1.3 est utilisé.

TLSv1.3 est-il utilisé entre Cloudflare et votre serveur d'origine ?

Oui. Cloudflare prend en charge TLS 1.3 sur le serveur frontal et utilise également TLSv1.3 lors de la connexion à votre serveur d'origine. Pour vérifier quelle version de TLS est utilisée, vous pouvez créer un format de journal personnalisé dans /etc/nginx/nginx.conf fichier.

sudo nano /etc/nginx/nginx.conf

Ajoutez le texte suivant dans le http contexte.

log_format combined_ssl '$remote_addr - $remote_user [$time_local] '
                  '$ssl_protocol/$ssl_cipher '
                  '"$request" $status $body_bytes_sent '
                  '"$http_referer" "$http_user_agent"';

Enregistrez et fermez le fichier. Ajoutez ensuite un access_log directive dans votre server SSL le contexte. Le journal est en combined_ssl formater.

access_log /var/log/nginx/your-site.access.log combined_ssl;

Enregistrez et fermez le fichier. Ensuite, rechargez Nginx. Dans le fichier journal d'accès, vous verrez quelque chose comme ci-dessous, qui indique que TLS 1.3 est utilisé.

172.68.132.115 - - [25/Feb/2020:16:07:26 +0800] TLSv1.3/TLS_AES_256_GCM_SHA384 "GET / HTTP/1.1"

Étape suivante

J'espère que ce tutoriel vous a aidé à activer TLS 1.3 dans Nginx sur Ubuntu 20.04, Ubuntu 18.04 et Ubuntu 16.04. Vous pouvez également configurer le pare-feu d'application Web ModSecurity pour protéger votre site Web contre le piratage.

  • Comment configurer ModSecurity avec Nginx sur Debian/Ubuntu

Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de trucs et astuces. Prenez soin de vous 🙂


Ubuntu
  1. Comment activer SSH sur Ubuntu 18.04

  2. Comment activer le bureau à distance Ubuntu

  3. Comment vérifier l'état de NGINX sur Ubuntu

  4. Comment activer la veilleuse sur Ubuntu 17.10

  5. Ubuntu 20.04 - Comment activer Hwe ?

Comment configurer facilement un résolveur DNS sur TLS avec Nginx sur Ubuntu

Comment activer TLS 1.3 dans Nginx sur Ubuntu 18.04 et 16.04

Comment activer le clic pour réduire sur Ubuntu

Comment activer le serveur SSH sur Ubuntu 22.04

Comment activer TLS 1.3 sur Apache et Nginx

Comment installer Nginx sur Ubuntu 15.04