TLS 1.3 è una versione del protocollo TLS (Transport Layer Security) che è stato pubblicato nel 2018 come standard proposto in RFC 8446. Offre miglioramenti di sicurezza e prestazioni rispetto ai suoi predecessori.
Questa guida mostrerà come abilitare TLS 1.3 usando il web server Apache su Fedora 30.
Requisiti
- Istanza di Vultr Cloud Compute (VC2) che esegue Fedora 30.
- 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.
- Versione di Apache
2.4.36
o successiva.
- Versione OpenSSL
1.1.1
o successiva.
Prima di iniziare
Controlla la versione di Fedora.
cat /etc/fedora-release
# Fedora release 30 (Thirty)
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 acme.sh
client e ottieni un certificato TLS da Let's Encrypt
Installa 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 your_email@example.com
cd ~
source ~/.bashrc
Controlla la versione
/etc/letsencrypt/acme.sh --version
# v2.8.2
Ottieni i certificati RSA ed ECDSA per il tuo dominio.
# RSA
sudo /etc/letsencrypt/acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength 2048
# ECC/ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength ec-256
NOTA: sostituisci i example.com
comandi con il tuo nome di dominio.
Crea directory sensibili in cui archiviare i certificati e le chiavi. Useremo /etc/letsencrypt
.
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installa e copia i certificati in /etc/letsencrypt
.
# RSA
sudo /etc/letsencrypt/acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem
# ECC/ECDSA
sudo /etc/letsencrypt/acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem
Dopo aver eseguito i comandi sopra, i certificati e le chiavi saranno nei seguenti percorsi:
- RSA :
/etc/letsencrypt/example.com
- ECC / ECDSA :
/etc/letsencrypt/example.com_ecc
Installa Apache
Apache ha aggiunto il supporto per TLS 1.3 nella versione 2.4.36. Il sistema Fedora 30 viene fornito con Apache e OpenSSL che supportano TLS 1.3 immediatamente, quindi non è necessario creare una versione personalizzata.
Scarica e installa l'ultimo ramo 2.4 di Apache e il suo modulo per SSL tramite il dnf
gestore pacchetti.
sudo dnf install -y httpd mod_ssl
Controlla la versione
sudo httpd -v
# Server version: Apache/2.4.39 (Fedora)
# Server built: May 2 2019 14:50:28
Avvia e abilita Apache.
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Ora che abbiamo installato Apache con successo, siamo pronti a configurarlo per iniziare a utilizzare TLS 1.3 sul nostro server.
Esegui sudo vim /etc/httpd/conf.d/example.com.conf
e popola il file con la seguente configurazione di base.
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
# RSA
SSLCertificateFile "/etc/letsencrypt/example.com/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/example.com/private.key"
# ECC
SSLCertificateFile "/etc/letsencrypt/example.com_ecc/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/example.com_ecc/private.key"
</VirtualHost>
</IfModule>
Salva il file ed esci.
Controlla la configurazione.
sudo apachectl configtest
Ricarica Apache per attivare la nuova configurazione.
sudo systemctl reload httpd.service
Apri il tuo sito tramite il protocollo HTTPS nel tuo browser web. 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 con TLS 1.3 in azione.


TLS 1.3 è stato abilitato correttamente in Apache sul server Fedora 30. La versione finale di TLS 1.3 è stata definita nell'agosto 2018, quindi non c'è momento migliore per iniziare ad adottare questa nuova tecnologia.