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.