Requisits
Abans que comencis
Instal·leu el client acme.sh i obteniu un certificat TLS de Let's Encrypt
Instal·leu Apache
Configureu Apache per a TLS 1.3
TLS 1.3 és una versió del protocol Transport Layer Security (TLS) que es va publicar el 2018 com a estàndard proposat a RFC 8446 . Ofereix millores de seguretat i rendiment respecte als seus predecessors.
Aquesta guia mostrarà com habilitar TLS 1.3 mitjançant el servidor web Apache a FreeBSD 12.
Requisits
- Instància Vultr Cloud Compute (VC2) que executa FreeBSD 12.
- Un nom de domini vàlid i degudament configurats
A/ AAAA/ CNAMEregistres DNS del seu domini.
- Un certificat TLS vàlid. En obtindrem un de Let's Encrypt.
- Versió d'Apache
2.4.36o superior.
- Versió OpenSSL
1.1.1o superior.
Abans que comencis
Comproveu la versió de FreeBSD.
uname -ro
# FreeBSD 12.0-RELEASE
Assegureu-vos que el vostre sistema FreeBSD estigui actualitzat.
freebsd-update fetch install
pkg update && pkg upgrade -y
Instal·leu els paquets necessaris si no estan presents al vostre sistema.
pkg install -y sudo vim unzip wget bash socat git
Creeu un compte d'usuari nou amb el vostre nom d'usuari preferit (farem servir 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!
Executeu l' visudoordre i descomenteu la %wheel ALL=(ALL) ALLlínia per permetre que els membres del wheelgrup executin qualsevol ordre.
visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL
Ara, canvieu al vostre nou usuari creat amb su.
su - johndoe
NOTA: Substituïu-lo johndoepel vostre nom d'usuari.
Configura la zona horària.
sudo tzsetup
Instal·leu el acme.shclient i obteniu un certificat TLS de Let's Encrypt
Instal·lar acme.sh.
sudo pkg install -y acme.sh
Comproveu la versió.
acme.sh --version
# v2.7.9
Obteniu certificats RSA i ECDSA per al vostre domini.
# 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: Substituïu les example.comordres pel vostre nom de domini.
Creeu directoris intel·ligents per emmagatzemar els vostres certificats i claus. Farem servir /etc/letsencrypt.
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Instal·leu i copieu certificats a /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
Després d'executar les ordres anteriors, els vostres certificats i claus estaran a les ubicacions següents:
RSA: /etc/letsencrypt/example.com
ECC/ECDSA: /etc/letsencrypt/example.com_ecc
Instal·leu Apache
Apache va afegir suport per a TLS 1.3 a la versió 2.4.36. El sistema FreeBSD 12 inclou Apache i OpenSSL que admeten TLS 1.3 des de la caixa, de manera que no cal crear una versió personalitzada.
Baixeu i instal·leu la darrera branca 2.4 d'Apache mitjançant el pkggestor de paquets.
sudo pkg install -y apache24
Comproveu la versió.
httpd -v
# Server version: Apache/2.4.38 (FreeBSD)
Inicieu i activeu Apache.
sudo sysrc apache24_enable="yes"
sudo service apache24 start
Ara que hem instal·lat Apache amb èxit, estem preparats per configurar-lo per començar a utilitzar TLS 1.3 al nostre servidor.
NOTA: A FreeBSD, el mod_sslmòdul està habilitat per defecte tant al paquet com al port
Executeu sudo vim /usr/local/etc/apache24/httpd.confi inclogueu el mòdul SSL eliminant el comentari LoadModule ssl_module libexec/apache24/mod_ssl.so.
#LoadModule ssl_module libexec/apache24/mod_ssl.so
Executeu sudo vim /usr/local/etc/apache24/Includes/example.com.conf, i ompliu el fitxer amb la configuració bàsica següent.
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>
Deseu el fitxer i sortiu amb :+ W+ Q.
Comproveu la configuració.
sudo service apache24 configtest
Torna a carregar Apache.
sudo service apache24 reload
Obriu el vostre lloc mitjançant el protocol HTTPS al vostre navegador web. Per verificar TLS 1.3, podeu utilitzar les eines de desenvolupament del navegador o el servei SSL Labs. Les captures de pantalla següents mostren la pestanya de seguretat de Chrome amb TLS 1.3 en acció.

![Com habilitar TLS 1.3 a Apache a FreeBSD 12 Com habilitar TLS 1.3 a Apache a FreeBSD 12]()
Heu activat correctament TLS 1.3 a Apache al vostre servidor FreeBSD. La versió final de TLS 1.3 es va definir l'agost de 2018, així que no hi ha millor moment per començar a adoptar aquesta nova tecnologia.