Com habilitar TLS 1.3 a Apache i Nginx
TLS 1.3 és l'última versió del protocol Transport Layer Security (TLS) i es basa en les especificacions 1.2 existents amb l'estàndard IETF adequat: RFC 8446. Proporciona una seguretat més forta i millores de rendiment superiors respecte als seus predecessors.
En aquest article, us mostrarem una guia pas a pas per obtenir un certificat TLS vàlid i habilitar l'últim protocol de versió TLS 1.3 al vostre domini allotjat als servidors web Apache o Nginx.
- Apache versió 2.4.37 o posterior.
- Nginx versió 1.13.0 o superior.
- OpenSSL versió 1.1.1 o superior.
- Un nom de domini vàlid amb registres DNS configurats correctament.
- Un certificat TLS vàlid.
Instal·leu el certificat TLS des de Let's Encrypt
Per obtenir un certificat SSL gratuït de Let's Encrypt, heu d'instal·lar el client Acme.sh i també alguns paquets necessaris al sistema Linux, tal com es mostra.
# apt install -y socat git [On Debian/Ubuntu] # dnf install -y socat git [On RHEL/CentOS/Fedora] # mkdir /etc/letsencrypt # git clone https://github.com/Neilpang/acme.sh.git # cd acme.sh # ./acme.sh --install --home /etc/letsencrypt --accountemail [email # cd ~ # /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength 2048 # /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength ec-256
NOTA: Substituïu example.com
a l'ordre anterior pel vostre nom de domini real.
Un cop hàgiu instal·lat el certificat SSL, podeu continuar activant TLS 1.3 al vostre domini tal com s'explica a continuació.
Habiliteu TLS 1.3 a Nginx
Com he esmentat als requisits anteriors, que TLS 1.3 és compatible a partir de la versió Nginx 1.13. Si esteu executant la versió anterior de Nginx, primer heu d'actualitzar a la darrera versió.
# apt install nginx # yum install nginx
Comproveu la versió de Nginx i la versió d'OpenSSL amb la qual es va compilar Nginx (assegureu-vos que la versió de nginx sigui almenys 1.14 i la versió d'openssl 1.1.1).
# 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 ....
Ara inicieu, activeu i verifiqueu la instal·lació de nginx.
# systemctl start nginx.service # systemctl enable nginx.service # systemctl status nginx.service
Ara obriu el fitxer de configuració /etc/nginx/conf.d/example.com.conf
de nginx vhost mitjançant el vostre editor preferit.
# vi /etc/nginx/conf.d/example.com.conf
i localitzeu la directiva ssl_protocols
i afegiu TLSv1.3 al final de la línia tal com es mostra a continuació
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; }
Finalment, verifiqueu la configuració i torneu a carregar Nginx.
# nginx -t # systemctl reload nginx.service
Habiliteu TLS 1.3 a Apache
A partir d'Apache 2.4.37, podeu aprofitar TLS 1.3. Si esteu executant la versió anterior d'Apache, primer haureu d'actualitzar a la darrera versió.
# apt install apache2 # yum install httpd
Un cop instal·lat, podeu verificar l'Apache i la versió d'OpenSSL amb la qual s'ha compilat Apache.
# httpd -V # openssl version
Ara inicieu, activeu i verifiqueu la instal·lació 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
Ara obriu el fitxer de configuració de l'amfitrió virtual d'Apache amb el vostre editor preferit.
# vi /etc/httpd/conf.d/vhost.conf OR # vi /etc/apache2/apache2.conf
i localitzeu la directiva ssl_protocols
i afegiu TLSv1.3 al final de la línia tal com es mostra a continuació.
<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 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>
Finalment, verifiqueu la configuració i torneu a carregar Apache.
-------------- On Debian/Ubuntu -------------- # apache2 -t # systemctl reload apache2.service -------------- On RHEL/CentOS/Fedora -------------- # httpd -t # systemctl reload httpd.service
Verifiqueu que el lloc utilitzi TLS 1.3
Un cop hàgiu configurat a través d'un servidor web, podeu comprovar que el vostre lloc s'està connectant amb el protocol TLS 1.3 mitjançant les eines de desenvolupament del navegador Chrome a la versió Chrome 70+.
Això és tot. Heu activat correctament el protocol TLS 1.3 al vostre domini allotjat als servidors web Apache o Nginx. Si teniu cap pregunta sobre aquest article, no dubteu a fer-ho a la secció de comentaris a continuació.