Giunsa Pag-enable ang TLS 1.3 sa Apache ug Nginx


Ang TLS 1.3 mao ang pinakabag-o nga bersyon sa Transport Layer Security (TLS) nga protocol ug kini gibase sa kasamtangan nga 1.2 nga mga espesipikasyon nga adunay tukma nga IETF standard: RFC 8446. Naghatag kini og mas lig-on nga seguridad ug mas taas nga performance improvements sa mga nauna niini.

Niini nga artikulo, ipakita namo kanimo ang usa ka sunod-sunod nga giya aron makakuha og balido nga TLS certificate ug makapahimo sa pinakabag-o nga TLS 1.3 version protocol sa imong domain nga gi-host sa Apache o Nginx web servers.

  • Bersyon sa Apache 2.4.37 o mas dako pa.
  • Nginx nga bersyon 1.13.0 o mas dako pa.
  • OpenSSL nga bersyon 1.1.1 o labaw pa.
  • Usa ka balido nga ngalan sa dominyo nga adunay hustong pagka-configure nga mga rekord sa DNS.
  • Usa ka balido nga TLS nga sertipiko.

I-install ang TLS Certificate gikan sa Let's Encrypt

Aron makakuha usa ka libre nga SSL Certificate gikan sa Let's Encrypt, kinahanglan nimo i-install ang kliyente sa Acme.sh ug pipila usab nga kinahanglan nga mga pakete sa sistema sa Linux sama sa gipakita.

# 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

NOTE: Ilisan ang example.com sa ibabaw nga command gamit ang imong tinuod nga domain name.

Kung na-install na nimo ang SSL nga sertipiko, mahimo ka nga magpadayon aron mahimo ang TLS 1.3 sa imong domain ingon nga gipatin-aw sa ubos.

I-enable ang TLS 1.3 sa Nginx

Sama sa akong gihisgutan sa mga kinahanglanon sa ibabaw, nga ang TLS 1.3 gisuportahan sugod sa Nginx 1.13 nga bersyon. Kung nagdagan ka sa mas karaan nga bersyon sa Nginx, kinahanglan nimo nga una nga mag-upgrade sa labing bag-ong bersyon.

# apt install nginx
# yum install nginx

Susiha ang bersyon sa Nginx ug ang bersyon sa OpenSSL diin gihugpong ang Nginx (siguroha nga ang bersyon sa nginx labing menos 1.14 ug openssl nga bersyon 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
....

Karon pagsugod, pagpagana ug pag-verify sa pag-instalar sa nginx.

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

Karon ablihi ang nginx vhost configuration /etc/nginx/conf.d/example.com.conf file gamit ang imong paborito nga editor.

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

ug pangitaa ang ssl_protocols nga direktiba ug idugang ang TLSv1.3 sa katapusan sa linya sama sa gipakita sa ubos

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

Sa katapusan, pamatud-i ang pagsumpo ug i-reload ang Nginx.

# nginx -t
# systemctl reload nginx.service

I-enable ang TLS 1.3 sa Apache

Sugod sa Apache 2.4.37, mahimo nimong pahimuslan ang TLS 1.3. Kung nagdagan ka sa mas daan nga bersyon sa Apache, kinahanglan nimo nga una nga mag-upgrade sa labing bag-ong bersyon.

# apt install apache2
# yum install httpd

Sa higayon nga ma-install, mahimo nimong pamatud-an ang Apache ug ang bersyon sa OpenSSL diin gihugpong ang Apache.

# httpd -V
# openssl version

Karon pagsugod, pagpagana ug pag-verify sa pag-instalar sa nginx.

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

Karon ablihi ang Apache virtual host configuration file gamit ang imong paborito nga editor.

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

ug pangitaa ang ssl_protocols direktiba ug idugang ang TLSv1.3 sa katapusan sa linya sama sa gipakita sa ubos.

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

Sa katapusan, pamatud-i ang pagsumpo ug i-reload ang Apache.

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

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

I-verify ang Site nga Gigamit ang TLS 1.3

Kung na-configure na nimo pinaagi sa usa ka web server, mahimo nimong susihon nga ang imong site nag-handshaking sa TLS 1.3 protocol gamit ang mga tool sa pagpalambo sa chrome browser sa bersyon sa Chrome 70+.

Kana lang. Malampuson nimong na-enable ang TLS 1.3 protocol sa imong domain nga gi-host sa Apache o Nginx web servers. Kung naa kay pangutana bahin sa kini nga artikulo, palihug ayaw pangutana sa seksyon sa komento sa ubos.