Wéi aktivéiert TLS 1.3 an Apache an Nginx


TLS 1.3 ass déi lescht Versioun vum Transport Layer Security (TLS) Protokoll an et baséiert op déi existent 1.2 Spezifikatioune mat engem passenden IETF Standard: RFC 8446. Et bitt méi staark Sécherheet a méi héich Leeschtungsverbesserungen iwwer seng Virgänger.

An dësem Artikel weisen mir Iech e step-by-step Guide fir e gültege TLS Zertifika ze kréien an de leschten TLS 1.3 Versiounsprotokoll op Ärem Domain z'aktivéieren op Apache oder Nginx Webserver.

  • Apache Versioun 2.4.37 oder méi.
  • Nginx Versioun 1.13.0 oder méi.
  • OpenSSL Versioun 1.1.1 oder méi.
  • E gültege Domainnumm mat korrekt konfiguréierten DNS-Records.
  • E valabelt TLS Zertifika.

Installéiert TLS Zertifikat vu Let's Encrypt

Fir e gratis SSL Zertifika vu Let's Encrypt ze kréien, musst Dir den Acme.sh Client installéieren an och e puer erfuerderlech Packagen op Linux System wéi gewisen.

# 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

NOTÉIERT: Ersetzen example.com am uewe genannte Kommando mat Ärem richtegen Domain Numm.

Wann Dir SSL Zertifikat installéiert hutt, kënnt Dir weidergoe fir TLS 1.3 op Ärem Domain z'aktivéieren wéi hei ënnen erkläert.

Aktivéiert TLS 1.3 op Nginx

Wéi ech an den Ufuerderunge hei uewen erwähnt hunn, datt TLS 1.3 ënnerstëtzt gëtt ab Nginx 1.13 Versioun. Wann Dir déi eeler Nginx Versioun leeft, musst Dir als éischt op déi lescht Versioun upgrade.

# apt install nginx
# yum install nginx

Kuckt d'Nginx Versioun an d'OpenSSL Versioun géint déi Nginx kompiléiert gouf (vergewëssert Iech datt d'nginx Versioun op d'mannst 1.14 an openssl Versioun 1.1.1 ass).

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

Elo starten, aktivéieren a verifizéieren d'nginx Installatioun.

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

Elo öffnen d'nginx vhost Konfiguratioun /etc/nginx/conf.d/example.com.conf Datei mat Ärem Liiblingseditor.

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

a lokaliséiert ssl_protocols Direktiv an fügen TLSv1.3 um Enn vun der Linn un wéi hei ënnendrënner.

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

Endlech, kontrolléiert d'Konfiguratioun a lued Nginx nei.

# nginx -t
# systemctl reload nginx.service

Aktivéiert TLS 1.3 an Apache

Vun Apache 2.4.37 un, kënnt Dir TLS 1.3 profitéieren. Wann Dir déi al Versioun vun Apache leeft, musst Dir als éischt op déi lescht Versioun upgrade.

# apt install apache2
# yum install httpd

Eemol installéiert, kënnt Dir d'Apache an d'OpenSSL Versioun verifizéieren, géint déi den Apache kompiléiert gouf.

# httpd -V
# openssl version

Elo starten, aktivéieren a verifizéieren d'nginx Installatioun.

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

Elo öffnen d'Apache virtuelle Host Konfiguratiounsdatei mat Ärem Liiblingseditor.

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

a lokaliséiert ssl_protocols Direktiv an fügen TLSv1.3 um Enn vun der Linn un wéi hei ënnendrënner.

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

Endlech, kontrolléiert d'Konfiguratioun a lued Apache nei.

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

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

Verifizéiert Site benotzt TLS 1.3

Wann Dir iwwer e Webserver konfiguréiert hutt, kënnt Dir iwwerpréiwen datt Äre Site iwwer TLS 1.3 Protokoll handshaking ass mat Chrome Browser Entwécklungsinstrumenter op Chrome 70+ Versioun.

Dat ass alles. Dir hutt den TLS 1.3 Protokoll erfollegräich aktivéiert op Ärem Domain op Apache oder Nginx Webserver gehost. Wann Dir Froen iwwer dësen Artikel hutt, frot Iech gratis an der Kommentarsektioun hei drënner.