Cómo habilitar TLS 1.3 en Nginx

Transport Layer Security (TLS) 1.3 es la última versión del protocolo Transport Layer Security (TLS), publicada como estándar IETF en el RFC 8446 en agosto de 2018. El protocolo TLS 1.3 proporciona mejoras de privacidad y rendimiento en comparación con las versiones anteriores de TLS y HTTP no seguro.

Desde la versión 1.13.0, Nginx ha añadido soporte para TLS 1.3. Actualmente, la mayoría de las distribuciones de Linux no contienen las versiones necesarias de Nginx y OpenSSL en sus repositorios de software por defecto, por lo que probablemente tendrás que compilar Nginx tú mismo con OpenSSL 1.1.1+. Las únicas distribuciones de Linux que tienen soporte nativo para TLS 1.3 son Ubuntu 18.10, Fedora 29 y Debian 10(todavía no se ha publicado a fecha de hoy). Si necesitas una guía sobre cómo compilar Nginx desde el código fuente, puedes seguir este tutorial de Howtoforge. En este tutorial, voy a suponer que ya tienes una configuración TLS que funciona, y que has compilado Nginx con OpenSSL 1.1.1+ siguiendo mi tutorial enlazado y que sabes cómo utilizar Let’s Encrypt, o sabes cómo emitir un certificado autofirmado.

Requisitos

Para activar TLS 1.3 en Nginx necesitarás cumplir los siguientes requisitos

  • Versión de Nginx1.13.0 o superior construida con OpenSSL 1.1.1 o superior.
  • Un certificado TLS válido o uno autofirmado. Puedes conseguir uno gratuito en Let’s Encrypt.

Habilitar TLS 1.3 en Nginx

Para habilitar TLS 1.3 en Nginx, sólo tienes que añadir el parámetroTLSv1.3 a la directiva ssl_protocols.

ssl_protocols TLSv1.2 TLSv1.3;

Y recarga tu configuración de Nginx:

sudo systemctl reload nginx.service

Eso es todo lo que hay que hacer cuando se trata de configurar Nginx. Un simple cambio y TLS 1.3 debería funcionar.

Esta es la configuración mínima del servidor virtual para TLS 1.3, que puede tener este aspecto:

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;

}

Para comprobar si tu servidor es compatible con TLS 1.3, puedes utilizar las herramientas de desarrollo de tu navegador o el test de servidor de SSLLabs. A continuación se muestran las capturas de pantalla del navegador Google Chrome que muestran TLS 1.3 en acción.

Comprueba la versión de TLS en el navegador

TLS 1.3 activado en Nginx con éxito

Y eso es todo lo que hay que hacer para habilitar TLS 1.3 en tu servidor Nginx.

También te podría gustar...