Krav
											
										
																			
											
												Før du begynder
											
										
																			
											
												Installer acme.sh-klienten og få et TLS-certifikat fra Let's Encrypt
											
										
																			
											
												Installer Nginx
											
										
																			
											
												Konfigurer Nginx
											
										
																	
												
						
												
TLS 1.3 er en version af TLS-protokollen (Transport Layer Security), der blev offentliggjort i 2018 som en foreslået standard i RFC 8446 . Det tilbyder sikkerhed og ydeevneforbedringer i forhold til sine forgængere.
Denne vejledning vil demonstrere, hvordan man aktiverer TLS 1.3 ved hjælp af Nginx-webserveren på FreeBSD 12.
Krav
- Vultr Cloud Compute (VC2)-instans, der kører FreeBSD 12.
- Et gyldigt domænenavn og korrekt konfigurerede A/AAAA/CNAMEDNS-poster for dit domæne.
- Et gyldigt TLS-certifikat. Vi får en fra Let's Encrypt.
- Nginx version 1.13.0eller nyere.
- OpenSSL version 1.1.1eller nyere.
Før du begynder
Tjek FreeBSD-versionen.
uname -ro
# FreeBSD 12.0-RELEASE
Sørg for, at dit FreeBSD-system er opdateret.
freebsd-update fetch install
pkg update && pkg upgrade -y
Installer nødvendige pakker, hvis de ikke findes på dit system.
pkg install -y sudo vim unzip wget bash socat git
Opret en ny brugerkonto med dit foretrukne brugernavn (vi bruger 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!
Kør visudokommandoen, og fjern kommentering af %wheel ALL=(ALL) ALLlinjen, for at tillade medlemmer af wheelgruppen at udføre enhver kommando.
visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL
Skift nu til din nyoprettede bruger med su.
su - johndoe
BEMÆRK:  Erstat johndoemed dit brugernavn.
Indstil tidszonen.
sudo tzsetup
Installer acme.sh-klienten og få et TLS-certifikat fra Let's Encrypt
Installer acme.sh.
sudo pkg install -y acme.sh
Tjek versionen.
acme.sh --version
# v2.7.9
Få RSA- og ECDSA-certifikater for dit domæne.
# 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
BEMÆRK:  Erstat example.comi kommandoerne med dit domænenavn.
Opret mapper til at gemme dine certifikater og nøgler. Vi vil bruge /etc/letsencrypt.
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installer og kopier certifikater til /etc/letsencryptmappe.
# 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
Efter at have kørt ovenstående kommandoer, vil dine certifikater og nøgler være på følgende steder:
- RSA:- /etc/letsencrypt/example.com
- ECC/ECDSA:- /etc/letsencrypt/example.com_ecc
Installer Nginx
Nginx tilføjede understøttelse af TLS 1.3 i version 1.13.0. FreeBSD 12-systemet leveres med Nginx og OpenSSL, der understøtter TLS 1.3 ud af æsken, så der er ingen grund til at bygge en brugerdefineret version.
Download og installer den seneste hovedversion af Nginx via pkgpakkehåndteringen.
sudo pkg install -y nginx-devel
Tjek versionen.
nginx -v
# nginx version: nginx/1.15.8
Tjek OpenSSL-versionen, som Nginx blev kompileret mod.
nginx -V
# built with OpenSSL 1.1.1a-freebsd  20 Nov 2018
Start og aktiver Nginx.
sudo sysrc nginx_enable=yes
sudo service nginx start
Nu hvor vi har installeret Nginx med succes, er vi klar til at konfigurere den med den korrekte konfiguration til at begynde at bruge TLS 1.3 på vores server.
Kør sudo vim /usr/local/etc/nginx/example.com.confkommandoen, og udfyld filen med følgende konfiguration.
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;
}
Gem filen og afslut med :+ W+ Q.
Nu skal vi inkludere example.com.confi hovedfilen nginx.conf.
Kør sudo vim /usr/local/etc/nginx/nginx.confog tilføj følgende linje til http {}blokken.
include example.com.conf;
Læg mærke til den nye TLSv1.3parameter i ssl_protocolsdirektivet. Denne parameter er kun nødvendig for at aktivere TLS 1.3 på Nginx-serveren.
Tjek konfigurationen.
sudo nginx -t
Genindlæs Nginx.
sudo service nginx reload
For at bekræfte TLS 1.3 kan du bruge browserudviklingsværktøjer eller SSL Labs-tjenesten. Skærmbillederne nedenfor viser Chromes sikkerhedsfane.


Du har med succes aktiveret TLS 1.3 i Nginx på din FreeBSD-server. Den endelige version af TLS 1.3 blev defineret i august 2018, så der er ikke noget bedre tidspunkt at begynde at adoptere denne nye teknologi.