Transport Layer Security (TLS) 1.3 est la dernière version du protocole Transport Layer Security (TLS), publiée en tant que norme IETF dans la RFC 8446 en août 2018. Le protocole TLS 1.3 offre des améliorations en matière de confidentialité et de performances par rapport aux versions précédentes de TLS et non -HTTP sécurisé.
Depuis la version 1.13.0, Nginx a été ajouté à la prise en charge de TLS 1.3. Actuellement, la plupart des distributions Linux ne contiennent pas les versions requises de Nginx et d'OpenSSL dans leurs référentiels de logiciels par défaut. Vous devrez donc probablement compiler Nginx vous-même avec OpenSSL 1.1.1+. Les seules distributions Linux prenant en charge nativement TLS 1.3 sont Ubuntu 18.10, Fedora 29 et Debian 10 (pas encore publiées à ce jour). Si vous avez besoin d'un guide sur la façon de compiler Nginx à partir de la source, vous pouvez suivre ce tutoriel Howtoforge. Dans ce tutoriel, je vais supposer que vous avez déjà une configuration TLS fonctionnelle, et que vous avez compilé Nginx avec OpenSSL 1.1.1+ en suivant mon tutoriel lié et que vous savez comment utiliser Let's Encrypt, ou vous savez comment émettre un certificat auto-signé.
Exigences
Pour activer TLS 1.3 dans Nginx, vous devez remplir les conditions suivantes :
- Version Nginx
1.13.0
ou version ultérieure construit avec OpenSSL 1.1.1 ou version ultérieure. - Un certificat TLS valide ou auto-signé. Vous pouvez en obtenir un gratuitement auprès de Let's Encrypt.
Activer TLS 1.3 dans Nginx
Pour activer TLS 1.3 dans Nginx, ajoutez simplement TLSv1.3
paramètre aux ssl_protocols
directives.
ssl_protocols TLSv1.2 TLSv1.3;
Et rechargez votre configuration Nginx :
sudo systemctl reload nginx.service
C'est tout ce qu'il y a à faire lorsqu'il s'agit de configurer Nginx. Un simple changement et TLS 1.3 devrait fonctionner.
Voici la configuration minimale du serveur virtuel pour TLS 1.3 qui peut ressembler à ceci :
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
root /var/www/example.com/public;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
ssl_protocols TLSv1.2 TLSv1.3;
}
Pour vérifier si votre serveur est compatible avec TLS 1.3, vous pouvez utiliser les outils de développement de votre navigateur ou le test de serveur SSLLabs. Vous trouverez ci-dessous des captures d'écran du navigateur Google Chrome qui montrent TLS 1.3 en action.
Et c'est tout ce qu'il y a à faire pour activer TLS 1.3 sur votre serveur Nginx.