Hvernig á að virkja TLS 1.3 í Apache og Nginx


TLS 1.3 er nýjasta útgáfan af Transport Layer Security (TLS) samskiptareglunum og hún er byggð á núverandi 1.2 forskriftum með réttum IETF staðli: RFC 8446. Það veitir sterkara öryggi og betri afköst umfram forvera sína.

Í þessari grein munum við sýna þér skref-fyrir-skref leiðbeiningar til að fá gilt TLS vottorð og virkja nýjustu TLS 1.3 útgáfusamskiptareglur á léninu þínu sem hýst er á Apache eða Nginx vefþjónum.

  • Apache útgáfa 2.4.37 eða nýrri.
  • Nginx útgáfa 1.13.0 eða nýrri.
  • OpenSSL útgáfa 1.1.1 eða nýrri.
  • Gildt lén með rétt stilltum DNS-skrám.
  • Gildt TLS vottorð.

Settu upp TLS vottorð frá Let's Encrypt

Til að fá ókeypis SSL vottorð frá Let's Encrypt þarftu að setja upp Acme.sh viðskiptavin og einnig nokkra nauðsynlega pakka á Linux kerfi eins og sýnt er.

# 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

ATHUGIÐ: Skiptu út example.com í skipuninni hér að ofan með raunverulegu léninu þínu.

Þegar þú hefur SSL vottorð uppsett geturðu haldið áfram til að virkja TLS 1.3 á léninu þínu eins og útskýrt er hér að neðan.

Virkjaðu TLS 1.3 á Nginx

Eins og ég nefndi í kröfunum hér að ofan, er TLS 1.3 studd frá og með Nginx 1.13 útgáfu. Ef þú ert að keyra eldri Nginx útgáfuna þarftu fyrst að uppfæra í nýjustu útgáfuna.

# apt install nginx
# yum install nginx

Athugaðu Nginx útgáfuna og OpenSSL útgáfuna sem Nginx var sett saman gegn (vertu viss um að nginx útgáfan sé að minnsta kosti 1.14 og openssl útgáfa 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
....

Byrjaðu, virkjaðu og staðfestu nginx uppsetninguna.

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

Opnaðu nú nginx vhost stillingar /etc/nginx/conf.d/example.com.conf skrána með því að nota uppáhalds ritilinn þinn.

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

og finndu ssl_protocols tilskipunina og bættu við TLSv1.3 í lok línunnar eins og sýnt er hér að neðan

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

Að lokum skaltu staðfesta stillingarnar og endurhlaða Nginx.

# nginx -t
# systemctl reload nginx.service

Virkjaðu TLS 1.3 í Apache

Frá og með Apache 2.4.37 geturðu nýtt þér TLS 1.3. Ef þú ert að keyra eldri útgáfuna af Apache þarftu fyrst að uppfæra í nýjustu útgáfuna.

# apt install apache2
# yum install httpd

Þegar það hefur verið sett upp geturðu staðfest Apache og OpenSSL útgáfuna sem Apache var sett saman gegn.

# httpd -V
# openssl version

Byrjaðu, virkjaðu og staðfestu nginx uppsetninguna.

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

Opnaðu nú Apache sýndarhýsilstillingarskrána með því að nota uppáhalds ritilinn þinn.

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

og finndu ssl_protocols tilskipunina og bættu við TLSv1.3 í lok línunnar eins og sýnt er hér að neðan.

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

Að lokum skaltu staðfesta stillingarnar og endurhlaða Apache.

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

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

Staðfestu að vefsvæðið noti TLS 1.3

Þegar þú hefur stillt upp í gegnum netþjón geturðu athugað hvort vefsvæðið þitt sé handabandi yfir TLS 1.3 samskiptareglum með því að nota króm vafraþróunarverkfæri í Chrome 70+ útgáfu.

Það er allt og sumt. Þú hefur virkjað TLS 1.3 samskiptareglur á léninu þínu sem hýst er á Apache eða Nginx vefþjónum. Ef þú hefur einhverjar spurningar um þessa grein, ekki hika við að spyrja í athugasemdahlutanum hér að neðan.