Zahtjevi
Prije nego što počneš
Instalirajte klijenta acme.sh i pribavite TLS certifikat od Let's Encrypt
Instalirajte Nginx
Konfigurirajte Nginx
TLS 1.3 verzija je protokola Transport Layer Security (TLS) koji je objavljen 2018. kao predloženi standard u RFC 8446 . Nudi poboljšanja sigurnosti i performansi u odnosu na svoje prethodnike.
Ovaj vodič će pokazati kako omogućiti TLS 1.3 pomoću Nginx web poslužitelja na FreeBSD 12.
Zahtjevi
- Vultr Cloud Compute (VC2) instanca koja pokreće FreeBSD 12.
- Ispravan naziv domene i ispravno konfigurirani
A/ AAAA/ CNAMEDNS zapisi za vašu domenu.
- Važeći TLS certifikat. Dobit ćemo jedan od Let's Encrypt.
- Nginx verzija
1.13.0ili novija.
- OpenSSL verzija
1.1.1ili novija.
Prije nego što počneš
Provjerite verziju FreeBSD-a.
uname -ro
# FreeBSD 12.0-RELEASE
Provjerite je li vaš FreeBSD sustav ažuriran.
freebsd-update fetch install
pkg update && pkg upgrade -y
Instalirajte potrebne pakete ako nisu prisutni na vašem sustavu.
pkg install -y sudo vim unzip wget bash socat git
Izradite novi korisnički račun sa svojim željenim korisničkim imenom (koristit ćemo 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!
Pokrenite visudonaredbu i dekomentirajte %wheel ALL=(ALL) ALLredak kako biste omogućili članovima wheelgrupe da izvrše bilo koju naredbu.
visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL
Sada se prebacite na svog novostvorenog korisnika pomoću su.
su - johndoe
NAPOMENA: Zamijenite johndoesvojim korisničkim imenom.
Postavite vremensku zonu.
sudo tzsetup
Instalirajte klijenta acme.sh i pribavite TLS certifikat od Let's Encrypt
Instaliraj acme.sh.
sudo pkg install -y acme.sh
Provjerite verziju.
acme.sh --version
# v2.7.9
Nabavite RSA i ECDSA certifikate za svoju domenu.
# 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
NAPOMENA: Zamijenite example.comu naredbama imenom svoje domene.
Izradite imenike za pohranu vaših certifikata i ključeva. Koristit ćemo /etc/letsencrypt.
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Instalirajte i kopirajte certifikate u /etc/letsencryptimenik.
# 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
Nakon pokretanja gornjih naredbi, vaši će certifikati i ključevi biti na sljedećim mjestima:
RSA: /etc/letsencrypt/example.com
ECC/ECDSA: /etc/letsencrypt/example.com_ecc
Instalirajte Nginx
Nginx je dodao podršku za TLS 1.3 u verziji 1.13.0. FreeBSD 12 sustav dolazi s Nginxom i OpenSSL-om koji podržavaju TLS 1.3 iz kutije, tako da nema potrebe za izradom prilagođene verzije.
Preuzmite i instalirajte najnoviju glavnu verziju Nginxa putem pkgupravitelja paketa.
sudo pkg install -y nginx-devel
Provjerite verziju.
nginx -v
# nginx version: nginx/1.15.8
Provjerite verziju OpenSSL-a prema kojoj je Nginx sastavljen.
nginx -V
# built with OpenSSL 1.1.1a-freebsd 20 Nov 2018
Pokrenite i omogućite Nginx.
sudo sysrc nginx_enable=yes
sudo service nginx start
Sada kada smo uspješno instalirali Nginx, spremni smo ga konfigurirati s odgovarajućom konfiguracijom kako bismo počeli koristiti TLS 1.3 na našem poslužitelju.
Pokrenite sudo vim /usr/local/etc/nginx/example.com.confnaredbu i popunite datoteku sljedećom konfiguracijom.
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;
}
Spremite datoteku i izađite s :+ W+ Q.
Sada moramo uključiti example.com.confu glavnu nginx.confdatoteku.
Pokrenite sudo vim /usr/local/etc/nginx/nginx.confi dodajte sljedeći redak u http {}blok.
include example.com.conf;
Obratite pažnju na novi TLSv1.3parametar ssl_protocolsdirektive. Ovaj parametar je neophodan samo za omogućavanje TLS 1.3 na Nginx poslužitelju.
Provjerite konfiguraciju.
sudo nginx -t
Ponovno učitajte Nginx.
sudo service nginx reload
Da biste potvrdili TLS 1.3, možete koristiti alate za razvoj preglednika ili uslugu SSL Labs. Snimke zaslona u nastavku prikazuju Chromeovu sigurnosnu karticu.

![Kako omogućiti TLS 1.3 u Nginxu na FreeBSD 12 Kako omogućiti TLS 1.3 u Nginxu na FreeBSD 12]()
Uspješno ste omogućili TLS 1.3 u Nginxu na svom FreeBSD poslužitelju. Konačna verzija TLS-a 1.3 definirana je u kolovozu 2018., tako da nema boljeg trenutka za početak usvajanja ove nove tehnologije.