Habilitar TLS 1.3 en Nginx y Apache
TLS 1.3 es la última versión del protocolo Transport Layer Security (TLS) y se basa en las especificaciones 1.2 existentes con el estándar IETF adecuado: RFC 8446. Proporciona mayor seguridad y mejoras de rendimiento superiores a sus predecesores.
En este artículo, le mostraremos una guía paso a paso para obtener un certificado TLS válido y habilitar la última versión del protocolo TLS 1.3 en su dominio alojado en servidores web Apache o Nginx.
- Apache version 2.4.37 or greater.
- Nginx version 1.13.0 or greater.
- OpenSSL version 1.1.1 or greater.
- A valid domain name with correctly configured DNS records.
- A valid TLS certificate.
Habilite TLS 1.3 en Nginx
Como mencioné en los requisitos anteriores, TLS 1.3 es compatible a partir de la versión Nginx 1.13. Si está ejecutando la versión anterior de Nginx, primero debe actualizar a la última versión.
# apt install nginx # yum install nginx
Verifique la versión de Nginx y la versión de OpenSSL con la que se compiló Nginx (asegúrese de que la versión de nginx sea al menos 1.14 y la versión 1.1.1 de openssl).
# nginx -V
nginx version: nginx/1.14.1 built by gcc 8.2.1 20180905 (Red Hat 8.2.1-3) (GCC) built with OpenSSL 1.1.1 FIPS 11 Sep 2018 TLS SNI support enabled ....
Ahora comience, habilite y verifique la instalación de nginx.
# systemctl start nginx.service # systemctl enable nginx.service # systemctl status nginx.service
Ahora abra el archivo de configuración de nginx vhost /etc/nginx/conf.d/example.com.conf
usando su editor favorito.
# vi /etc/nginx/conf.d/example.com.conf
y ubique la directiva ssl_protocols
y agregue TLSv1.3 al final de la línea como se muestra a continuación
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
}
Finalmente, verifique la configuración y vuelva a cargar Nginx.
# nginx -t # systemctl reload nginx.service
Habilitar TLS 1.3 en Apache
A partir de Apache 2.4.37, puede aprovechar TLS 1.3. Si está ejecutando la versión anterior de Apache, primero debe actualizar a la última versión.
# apt install apache2 # yum install httpd
Una vez instalado, puede verificar Apache y la versión de OpenSSL con la que se compiló Apache.
# httpd -V # openssl version
Ahora comience, habilite y verifique la instalación de nginx.
-------------- On Debian/Ubuntu -------------- # systemctl start apache2.service # systemctl enable apache2.service # systemctl status apache2.service -------------- On RHEL/CentOS/Fedora -------------- # systemctl start httpd.service # systemctl enable httpd.service # systemctl status httpd.service
Ahora abra el archivo de configuración del host virtual Apache con su editor favorito.
# vi /etc/httpd/conf.d/vhost.conf OR # vi /etc/apache2/apache2.conf
y ubique la directiva ssl_protocols
y agregue TLSv1.3 al final de la línea como se muestra a continuación.
<VirtualHost *:443> SSLEngine On # RSA ssl_certificate /etc/letsencrypt/example.com/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com/example.com.key; # ECDSA ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key; ssl_protocols TLSv1.2 TLSv1.3 ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem ServerAdmin [email protected] ServerName www.example.com ServerAlias example.com #DocumentRoot /data/httpd/htdocs/example.com/ DocumentRoot /data/httpd/htdocs/example_hueman/ # Log file locations LogLevel warn ErrorLog /var/log/httpd/example.com/httpserror.log CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/example.com/httpsaccess.log.%Y-%m-%d 86400" combined </VirtualHost>
Finalmente, verifique la configuración y vuelva a cargar Apache.
-------------- On Debian/Ubuntu -------------- # apache2 -t # systemctl reload apache2.service -------------- On RHEL/CentOS/Fedora -------------- # httpd -t # systemctl reload httpd.service
Verifique que el sitio esté usando TLS 1.3
Una vez que lo haya configurado a través de un servidor web, puede verificar que su sitio se comunique con el protocolo TLS 1.3 utilizando las herramientas de desarrollo del navegador Chrome en la versión Chrome 70+.

Eso es todo. Ha habilitado con éxito el protocolo TLS 1.3 en su dominio alojado en servidores web Apache o Nginx. Si tiene alguna pregunta sobre este artículo, no dude en preguntar en la sección de comentarios a continuación.
Comentarios
Publicar un comentario