Requisits
Abans que comencis
Instal·leu el client acme.sh i obteniu el certificat TLS de Let's Encrypt
Instal·leu Nginx
Configura Nginx
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 Nginx 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ó Nginx
1.13.0o 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 client acme.sh i obteniu el 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 example.comles ordres pel vostre nom de domini.
Creeu directoris 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 al /etc/letsencryptdirectori.
# 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 Nginx
Nginx va afegir suport per a TLS 1.3 a la versió 1.13.0. El sistema FreeBSD 12 inclou Nginx 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 versió principal de Nginx mitjançant el pkggestor de paquets.
sudo pkg install -y nginx-devel
Comproveu la versió.
nginx -v
# nginx version: nginx/1.15.8
Comproveu la versió d'OpenSSL amb la qual es va compilar Nginx.
nginx -V
# built with OpenSSL 1.1.1a-freebsd 20 Nov 2018
Inicieu i activeu Nginx.
sudo sysrc nginx_enable=yes
sudo service nginx start
Ara que hem instal·lat Nginx correctament, estem preparats per configurar-lo amb la configuració adequada per començar a utilitzar TLS 1.3 al nostre servidor.
Executeu l' sudo vim /usr/local/etc/nginx/example.com.confordre i ompliu el fitxer amb la configuració següent.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.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;
}
Deseu el fitxer i sortiu amb :+ W+ Q.
Ara hem d'incloure example.com.confal nginx.conffitxer principal .
Executeu sudo vim /usr/local/etc/nginx/nginx.confi afegiu la línia següent al http {}bloc.
include example.com.conf;
Observeu el nou TLSv1.3paràmetre de la ssl_protocolsdirectiva. Aquest paràmetre només és necessari per habilitar TLS 1.3 al servidor Nginx.
Comproveu la configuració.
sudo nginx -t
Torna a carregar Nginx.
sudo service nginx reload
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.

![Com habilitar TLS 1.3 a Nginx a FreeBSD 12 Com habilitar TLS 1.3 a Nginx a FreeBSD 12]()
Heu activat correctament TLS 1.3 a Nginx 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.