Slik aktiverer du TLS 1.3 i Apache og Nginx


TLS 1.3 er den nyeste versjonen av Transport Layer Security (TLS)-protokollen, og den er basert på de eksisterende 1.2-spesifikasjonene med riktig IETF-standard: RFC 8446. Den gir sterkere sikkerhet og høyere ytelsesforbedringer i forhold til forgjengerne.

I denne artikkelen vil vi vise deg en trinnvis veiledning for å få et gyldig TLS-sertifikat og aktivere den nyeste TLS 1.3-versjonsprotokollen på domenet ditt som er vert på Apache eller Nginx nettjenere.

Krav:

  • Apache versjon 2.4.37 eller nyere.
  • Nginx versjon 1.13.0 eller nyere.
  • OpenSSL versjon 1.1.1 eller nyere.
  • Et gyldig domenenavn med riktig konfigurerte DNS-poster.
  • Et gyldig TLS-sertifikat.

Installer TLS-sertifikat fra Let's Encrypt

For å få et gratis SSL-sertifikat fra La oss kryptere, må du installere Acme.sh-klienten og også noen 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

MERK: Erstatt example.com i kommandoen ovenfor med ditt virkelige domenenavn.

Når du har installert SSL-sertifikat, kan du fortsette videre for å aktivere TLS 1.3 på domenet ditt som forklart nedenfor.

Aktiver TLS 1.3 på Nginx

Som jeg nevnte i kravene ovenfor, støttes TLS 1.3 fra og med Nginx 1.13-versjonen. Hvis du kjører den eldre Nginx-versjonen, må du først oppgradere til den nyeste versjonen.


apt install nginx
yum install nginx

Sjekk Nginx-versjonen og OpenSSL-versjonen som Nginx ble kompilert mot (sørg for at nginx-versjonen er minst 1.14 og openssl versjon 1.1.1).


nginx -V
Eksempelutgang

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, aktiver og bekreft nginx-installasjonen.


systemctl start nginx.service
systemctl enable nginx.service
systemctl status nginx.service

Åpne nå nginx vhost-konfigurasjonsfilen /etc/nginx/conf.d/example.com.conf ved å bruke din favorittredigerer.


vi /etc/nginx/conf.d/example.com.conf

og finn ssl_protocols-direktivet og legg til TLSv1.3 på slutten av 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;
}

Til slutt, verifiser konfigurasjonen og last inn Nginx på nytt.


nginx -t
systemctl reload nginx.service

Aktiver TLS 1.3 i Apache

Fra og med Apache 2.4.37 kan du dra nytte av TLS 1.3. Hvis du kjører den eldre versjonen av Apache, må du først oppgradere til den nyeste versjonen.


apt install apache2
yum install httpd

Når den er installert, kan du bekrefte Apache- og OpenSSL-versjonen som Apache ble kompilert mot.


httpd -V
openssl version

Start, aktiver og bekreft nginx-installasjonen.


-------------- 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

Åpne nå konfigurasjonsfilen for den virtuelle Apache-verten ved å bruke din favorittredigerer.


vi /etc/httpd/conf.d/vhost.conf
OR
vi /etc/apache2/apache2.conf

og finn ssl_protocols-direktivet og legg til TLSv1.3 på slutten av 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>

Til slutt, verifiser konfigurasjonen og last inn Apache på nytt.


-------------- On Debian/Ubuntu -------------- 
apache2 -t
systemctl reload apache2.service

-------------- On RHEL/CentOS/Fedora --------------
httpd -t
systemctl reload httpd.service

Bekreft at nettstedet bruker TLS 1.3

Når du har konfigurert via en nettserver, kan du sjekke at nettstedet ditt håndshaker over TLS 1.3-protokollen ved å bruke utviklingsverktøy for Chrome-nettleseren på Chrome 70+-versjonen.

Det er alt. Du har aktivert TLS 1.3-protokollen på domenet ditt som er vert på Apache- eller Nginx-nettservere. Hvis du har spørsmål om denne artikkelen, spør gjerne i kommentarfeltet nedenfor.