introduzione
TLS 1.3 è una versione del protocollo TLS (Transport Layer Security) che è stato pubblicato nel 2018 come standard proposto in RFC 8446 . Offre sicurezza e miglioramenti delle prestazioni rispetto ai suoi predecessori.
Questa guida mostrerà come abilitare TLS 1.3 usando il web server Nginx su Fedora 29.
Requisiti
- Versione Nginx
1.13.0
o successiva.
- Versione OpenSSL
1.1.1
o successiva.
- Istanza di Vultr Cloud Compute (VC2) che esegue Fedora 29.
- Un nome di dominio valido e record DNS
A
/ AAAA
/ correttamente configurati CNAME
per il tuo dominio.
- Un certificato TLS valido. Ne avremo uno da Let's Encrypt.
Prima di iniziare
Controlla la versione di Fedora.
cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)
Crea un nuovo non-root
account utente con sudo
accesso e passa ad esso.
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
NOTA: sostituisci johndoe
con il tuo nome utente.
Imposta il fuso orario.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Assicurati che il tuo sistema sia aggiornato.
sudo dnf check-upgrade || sudo dnf upgrade -y
Installa i pacchetti necessari.
sudo dnf install -y socat git
Disabilita SELinux e Firewall.
sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalld
Installa il client Acme.sh e ottieni il certificato TLS da Let's Encrypt
In questa guida, utilizzeremo il client Acme.sh per ottenere certificati SSL da Let's Encrypt. Puoi usare un client con cui hai più familiarità.
Scaricare e installare Acme.sh .
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
Controlla la versione
/etc/letsencrypt/acme.sh --version
# v2.8.1
Ottieni i certificati RSA ed ECDSA per il tuo dominio.
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength ec-256
NOTA: Sostituisci example.com
nei comandi con il tuo nome di dominio.
Dopo aver eseguito i comandi precedenti, i certificati e le chiavi saranno accessibili su:
- RSA:
/etc/letsencrypt/example.com
.
- ECC / ECDSA:
/etc/letsencrypt/example.com_ecc
.
Installa Nginx
Nginx ha aggiunto il supporto per TLS 1.3 nella versione 1.13.0. Fedora 29 viene fornito con Nginx e OpenSSL che supportano TLS 1.3 immediatamente, quindi non è necessario creare una versione personalizzata.
Installa Nginx.
sudo dnf install -y nginx
Controlla la versione
nginx -v
# nginx version: nginx/1.14.2
Controlla la versione OpenSSL in base alla quale è stato compilato Nginx.
nginx -V
# built with OpenSSL 1.1.1b FIPS 26 Feb 2019
Avvia e abilita Nginx.
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Ora che Nginx è stato installato correttamente, siamo pronti a configurarlo con la configurazione corretta per iniziare a utilizzare TLS 1.3 sul nostro server.
Eseguire il sudo vim /etc/nginx/conf.d/example.com.conf
comando e popolare il file con la seguente configurazione.
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;
}
Salvare il file e uscire con :+ W+ Q.
Si noti il nuovo TLSv1.3
parametro della ssl_protocols
direttiva. Questo parametro è necessario solo per abilitare TLS 1.3 su Nginx.
Controlla la configurazione.
sudo nginx -t
Ricarica Nginx.
sudo systemctl reload nginx.service
Per verificare TLS 1.3, è possibile utilizzare gli strumenti di sviluppo del browser o il servizio SSL Labs. Le schermate seguenti mostrano la scheda di sicurezza di Chrome.
È tutto. TLS 1.3 è stato abilitato correttamente in Nginx sul server Fedora 29. La versione finale di TLS 1.3 è stata definita nell'agosto 2018, quindi non c'è momento migliore per iniziare ad adottare questa nuova tecnologia.