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 Apache su FreeBSD 12.
Requisiti
- Istanza di Vultr Cloud Compute (VC2) che esegue FreeBSD 12.
- Un nome di dominio valido e record DNS
A/ AAAA/ correttamente configurati CNAMEper il tuo dominio.
- Un certificato TLS valido. Ne avremo uno da Let's Encrypt.
- Versione di Apache
2.4.36o successiva.
- Versione OpenSSL
1.1.1o successiva.
Prima di iniziare
Controlla la versione di FreeBSD.
uname -ro
# FreeBSD 12.0-RELEASE
Assicurati che il tuo sistema FreeBSD sia aggiornato.
freebsd-update fetch install
pkg update && pkg upgrade -y
Installa i pacchetti necessari se non sono presenti sul tuo sistema.
pkg install -y sudo vim unzip wget bash socat git
Crea un nuovo account utente con il tuo nome utente preferito (useremo johndoe).
adduser
# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!
Esegui il visudocomando e decommenta la %wheel ALL=(ALL) ALLriga per consentire ai membri del wheelgruppo di eseguire qualsiasi comando.
visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL
Ora passa al nuovo utente creato con su.
su - johndoe
NOTA: sostituisci johndoecon il tuo nome utente.
Imposta il fuso orario.
sudo tzsetup
Installa il acme.shclient e ottieni un certificato TLS da Let's Encrypt
Installa acme.sh.
sudo pkg install -y acme.sh
Controlla la versione
acme.sh --version
# v2.7.9
Ottieni i certificati RSA ed ECDSA per il tuo dominio.
# RSA
sudo acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength 2048
# ECC/ECDSA
sudo acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength ec-256
NOTA: sostituisci i example.comcomandi 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 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 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 FreeBSD 12 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 tramite il pkggestore pacchetti.
sudo pkg install -y apache24
Controlla la versione
httpd -v
# Server version: Apache/2.4.38 (FreeBSD)
Avvia e abilita Apache.
sudo sysrc apache24_enable="yes"
sudo service apache24 start
Ora che abbiamo installato Apache con successo, siamo pronti a configurarlo per iniziare a utilizzare TLS 1.3 sul nostro server.
NOTA: In FreeBSD, il mod_sslmodulo è abilitato di default sia nel pacchetto che nella porta
Esegui sudo vim /usr/local/etc/apache24/httpd.confe includi il modulo SSL decommentando LoadModule ssl_module libexec/apache24/mod_ssl.so.
#LoadModule ssl_module libexec/apache24/mod_ssl.so
Esegui sudo vim /usr/local/etc/apache24/Includes/example.com.confe popola il file con la seguente configurazione di base.
Listen 443
<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>
Salvare il file e uscire con :+ W+ Q.
Controlla la configurazione.
sudo service apache24 configtest
Ricarica Apache.
sudo service apache24 reload
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.

![Come abilitare TLS 1.3 in Apache su FreeBSD 12 Come abilitare TLS 1.3 in Apache su FreeBSD 12]()
Hai abilitato con successo TLS 1.3 in Apache sul tuo server FreeBSD. La versione finale di TLS 1.3 è stata definita nell'agosto 2018, quindi non c'è momento migliore per iniziare ad adottare questa nuova tecnologia.