Kako omogočiti TLS 1.3 v Apacheju in Nginxu
TLS 1.3 je najnovejša različica protokola TLS (Transport Layer Security) in temelji na obstoječih 1.2 specifikacijah z ustreznim standardom IETF: RFC 8446. Zagotavlja močnejšo varnost in izboljša zmogljivosti v primerjavi s svojimi predhodniki.
V tem članku vam bomo prikazali vodnik po korakih za pridobitev veljavnega potrdila TLS in omogočili najnovejši protokol različice TLS 1.3 v vaši domeni, ki ga gostijo spletni strežniki Apache ali Nginx.
- Različica Apache 2.4.37 ali novejša.
- različica Nginx 1.13.0 ali novejša.
- OpenSSL različice 1.1.1 ali novejše.
- Veljavno ime domene s pravilno konfiguriranimi zapisi DNS.
- Veljavno potrdilo TLS.
Namestite potrdilo TLS iz programa Let’s Encrypt
Če želite od Let’s Encrypt pridobiti brezplačno potrdilo SSL, morate v sistem Linux namestiti odjemalca Acme.sh in nekaj potrebnih paketov, kot je prikazano.
# apt install -y socat git [On Debian/Ubuntu] # dnf install -y socat git [On RHEL/CentOS/Fedora] # mkdir /etc/letsencrypt # git clone https://github.com/Neilpang/acme.sh.git # cd acme.sh # ./acme.sh --install --home /etc/letsencrypt --accountemail [email # cd ~ # /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength 2048 # /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength ec-256
OPOMBA: V zgornjem ukazu example.com
zamenjajte s svojim pravim domenskim imenom.
Ko imate nameščen certifikat SSL, lahko nadaljujete z omogočanjem TLS 1.3 v svoji domeni, kot je razloženo spodaj.
Omogočite TLS 1.3 v Nginxu
Kot sem omenil v zgornjih zahtevah, je TLS 1.3 podprt od različice Nginx 1.13. Če uporabljate starejšo različico Nginxa, morate najprej nadgraditi na najnovejšo različico.
# apt install nginx # yum install nginx
Preverite različico Nginx in različico OpenSSL, za katero je bil sestavljen Nginx (prepričajte se, da je različica nginx vsaj 1.14 in različica openssl 1.1.1).
# nginx -V
nginx version: nginx/1.14.1 built by gcc 8.2.1 20180905 (Red Hat 8.2.1-3) (GCC) built with OpenSSL 1.1.1 FIPS 11 Sep 2018 TLS SNI support enabled ....
Zdaj zaženite, omogočite in preverite namestitev nginx.
# systemctl start nginx.service # systemctl enable nginx.service # systemctl status nginx.service
Zdaj odprite datoteko konfiguracije nginx vhost /etc/nginx/conf.d/example.com.conf
s svojim najljubšim urejevalnikom.
# vi /etc/nginx/conf.d/example.com.conf
in poiščite direktivo ssl_protocols
in dodajte TLSv1.3 na konec vrstice, kot je prikazano spodaj
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.com; # RSA ssl_certificate /etc/letsencrypt/example.com/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com/example.com.key; # ECDSA ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.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; }
Na koncu preverite konfiguracijo in znova naložite Nginx.
# nginx -t # systemctl reload nginx.service
Omogočite TLS 1.3 v Apache
Od Apache 2.4.37 lahko izkoristite TLS 1.3. Če uporabljate starejšo različico Apacheja, morate najprej nadgraditi na najnovejšo različico.
# apt install apache2 # yum install httpd
Ko je nameščen, lahko preverite Apache in različico OpenSSL, za katero je bil Apache sestavljen.
# httpd -V # openssl version
Zdaj zaženite, omogočite in preverite namestitev nginx.
-------------- On Debian/Ubuntu -------------- # systemctl start apache2.service # systemctl enable apache2.service # systemctl status apache2.service -------------- On RHEL/CentOS/Fedora -------------- # systemctl start httpd.service # systemctl enable httpd.service # systemctl status httpd.service
Zdaj odprite konfiguracijsko datoteko navideznega gostitelja Apache z vašim najljubšim urejevalnikom.
# vi /etc/httpd/conf.d/vhost.conf OR # vi /etc/apache2/apache2.conf
in poiščite direktivo ssl_protocols
in dodajte TLSv1.3 na konec vrstice, kot je prikazano spodaj.
<VirtualHost *:443> SSLEngine On # RSA ssl_certificate /etc/letsencrypt/example.com/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com/example.com.key; # ECDSA ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.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; SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem ServerAdmin [email ServerName www.example.com ServerAlias example.com #DocumentRoot /data/httpd/htdocs/example.com/ DocumentRoot /data/httpd/htdocs/example_hueman/ # Log file locations LogLevel warn ErrorLog /var/log/httpd/example.com/httpserror.log CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/example.com/httpsaccess.log.%Y-%m-%d 86400" combined </VirtualHost>
Na koncu preverite konfiguracijo in znova naložite Apache.
-------------- On Debian/Ubuntu -------------- # apache2 -t # systemctl reload apache2.service -------------- On RHEL/CentOS/Fedora -------------- # httpd -t # systemctl reload httpd.service
Preverite, ali spletno mesto uporablja TLS 1.3
Ko konfigurirate prek spletnega strežnika, lahko z uporabo orodij za razvoj brskalnika Chrome v različici Chrome 70+ preverite, ali vaše spletno mesto uporablja protokol TLS 1.3.
To je vse. Uspešno ste omogočili protokol TLS 1.3 v svoji domeni, ki jo gostijo spletni strežniki Apache ali Nginx. Če imate kakršna koli vprašanja glede tega članka, vas prosimo, da vprašate v spodnjem oddelku za komentarje.