Sådan aktiveres TLS 1.3 i Apache og Nginx
TLS 1.3 er den nyeste version af Transport Layer Security (TLS) -protokollen, og den er baseret på de eksisterende 1.2-specifikationer med den rette IETF-standard: RFC 8446. Den giver stærkere sikkerhed og forbedringer af ydeevnen i forhold til sine forgængere.
I denne artikel viser vi dig en trinvis vejledning til at få et gyldigt TLS-certifikat og aktivere den nyeste TLS 1.3-versionprotokol på dit domæne, der hostes på Apache- eller Nginx-webservere.
- Apache version 2.4.37 or greater.
- Nginx version 1.13.0 or greater.
- OpenSSL version 1.1.1 or greater.
- A valid domain name with correctly configured DNS records.
- A valid TLS certificate.
Installer TLS-certifikat fra Lad os kryptere
For at få et gratis SSL-certifikat fra Let's Encrypt skal du installere Acme.sh-klienten og få få nødvendige pakker på Linux-systemet som vist.
# 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
BEMÆRK: Udskift example.com
i ovenstående kommando med dit rigtige domænenavn.
Når du har installeret SSL-certifikat, kan du gå videre for at aktivere TLS 1.3 på dit domæne som forklaret nedenfor.
Aktivér TLS 1.3 på Nginx
Som jeg nævnte i kravene ovenfor understøttes den TLS 1.3 startende fra Nginx 1.13 version. Hvis du kører den ældre Nginx-version, skal du først opgradere til den nyeste version.
# apt install nginx # yum install nginx
Kontroller Nginx-versionen og OpenSSL-versionen, mod hvilken Nginx blev kompileret (sørg for, at nginx-versionen er mindst 1.14 og openssl version 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 ....
Start nu, aktiver og verificer nginx-installationen.
# systemctl start nginx.service # systemctl enable nginx.service # systemctl status nginx.service
Åbn nu nginx vhost-konfiguration /etc/nginx/conf.d/example.com.conf
filen ved hjælp af din foretrukne editor.
# vi /etc/nginx/conf.d/example.com.conf
og find ssl_protocols
direktivet og tilføj TLSv1.3 i slutningen af linjen som vist nedenfor
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; }
Endelig skal du kontrollere konfigurationen og genindlæse Nginx.
# nginx -t # systemctl reload nginx.service
Aktivér TLS 1.3 i Apache
Fra Apache 2.4.37 kan du drage fordel af TLS 1.3. Hvis du kører den ældre version af Apache, skal du først opgradere til den nyeste version.
# apt install apache2 # yum install httpd
Når du er installeret, kan du kontrollere Apache og OpenSSL-versionen, som Apache blev kompileret mod.
# httpd -V # openssl version
Start nu, aktiver og verificer nginx-installationen.
-------------- 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
Åbn nu Apache virtual host-konfigurationsfil ved hjælp af din yndlingseditor.
# vi /etc/httpd/conf.d/vhost.conf OR # vi /etc/apache2/apache2.conf
og find ssl_protocols
direktivet og tilføj TLSv1.3 i slutningen af linjen som vist nedenfor.
<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>
Endelig skal du kontrollere konfigurationen og genindlæse Apache.
-------------- On Debian/Ubuntu -------------- # apache2 -t # systemctl reload apache2.service -------------- On RHEL/CentOS/Fedora -------------- # httpd -t # systemctl reload httpd.service
Bekræft, at webstedet bruger TLS 1.3
Når du har konfigureret via en webserver, kan du kontrollere, at dit websted håndtrykker TLS 1.3-protokollen ved hjælp af Chrome-browserudviklingsværktøjer i Chrome 70+ version.
Det er alt. Du har aktiveret TLS 1.3-protokollen på dit domæne hostet på Apache- eller Nginx-webservere. Hvis du har spørgsmål om denne artikel, er du velkommen til at spørge i kommentarfeltet nedenfor.