ວິທີການເປີດໃຊ້ TLS 1.3 ໃນ Apache ແລະ Nginx


TLS 1.3 ແມ່ນໂປແກຼມລຸ້ນ ໃໝ່ ຫຼ້າສຸດຂອງ Transport Transport Layer Security (TLS) ແລະມັນແມ່ນອີງໃສ່ຂໍ້ ກຳ ຫນົດ 1.2 ຢ່າງທີ່ມີຢູ່ກັບມາດຕະຖານ IETF ທີ່ ເໝາະ ສົມ: RFC 8446. ມັນໃຫ້ຄວາມປອດໄພທີ່ເຂັ້ມແຂງແລະມີການປັບປຸງການປະຕິບັດທີ່ສູງກວ່າຜູ້ທີ່ມາກ່ອນ.

ໃນບົດຂຽນນີ້, ພວກເຮົາຈະສະແດງໃຫ້ທ່ານມີ ຄຳ ແນະ ນຳ ເປັນແຕ່ລະບາດກ້າວເພື່ອໃຫ້ໄດ້ໃບຢັ້ງຢືນ TLS ທີ່ຖືກຕ້ອງແລະເປີດໂປແກຼມ TLS 1.3 ຮຸ່ນ ໃໝ່ ຫຼ້າສຸດໃນໂດເມນຂອງທ່ານທີ່ໂຮດຢູ່ໃນເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Apache ຫຼື Nginx.

  • Apache version 2.4.37 ຫຼືສູງກວ່າ.
  • Nginx ຮຸ່ນ 1.13.0 ຂຶ້ນໄປ.
  • OpenSSL ຮຸ່ນ 1.1.1 ຫຼືສູງກວ່າ.
  • ຊື່ໂດເມນທີ່ຖືກຕ້ອງພ້ອມດ້ວຍບັນທຶກ DNS ທີ່ຖືກຕັ້ງຄ່າຢ່າງຖືກຕ້ອງ.
  • ໃບຢັ້ງຢືນ TLS ທີ່ຖືກຕ້ອງ.

ຕິດຕັ້ງໃບຢັ້ງຢືນ TLS ຈາກ Let’s Encrypt

ເພື່ອໃຫ້ໄດ້ໃບຢັ້ງຢືນ SSL ທີ່ບໍ່ເສຍຄ່າຈາກ Let’s Encrypt, ທ່ານ ຈຳ ເປັນຕ້ອງຕິດຕັ້ງລູກຄ້າ Acme.sh ແລະຍັງມີຊຸດທີ່ ຈຳ ເປັນ ຈຳ ນວນ ໜ້ອຍ ໃນລະບົບ Linux ດັ່ງທີ່ສະແດງ.

# 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

ໝາຍ ເຫດ: ປ່ຽນແທນ example.com ໃນ ຄຳ ສັ່ງຂ້າງເທິງດ້ວຍຊື່ໂດເມນທີ່ແທ້ຈິງຂອງທ່ານ.

ເມື່ອທ່ານໄດ້ຕິດຕັ້ງໃບຢັ້ງຢືນ SSL ແລ້ວ, ທ່ານສາມາດ ດຳ ເນີນການຕໍ່ໄປເພື່ອເປີດໃຊ້ TLS 1.3 ໃນໂດເມນຂອງທ່ານຕາມທີ່ໄດ້ອະທິບາຍຂ້າງລຸ່ມນີ້.

ເປີດໃຊ້ TLS 1.3 ເທິງ Nginx

ດັ່ງທີ່ຂ້າພະເຈົ້າໄດ້ກ່າວໃນຂໍ້ ກຳ ນົດຂ້າງເທິງ, TLS 1.3 ໄດ້ຮັບການສະ ໜັບ ສະ ໜູນ ເລີ່ມຕົ້ນຈາກ Nginx 1.13 ລຸ້ນ. ຖ້າທ່ານ ກຳ ລັງໃຊ້ເວີຊັນ Nginx ເກົ່າ, ທ່ານຕ້ອງໄດ້ຍົກລະດັບເປັນເວີຊັ່ນລ້າສຸດ.

# apt install nginx
# yum install nginx

ກວດເບິ່ງເວີຊັນ Nginx ແລະ OpenSSL ຮຸ່ນຕໍ່ຕ້ານເຊິ່ງ Nginx ຖືກລວບລວມ (ໃຫ້ແນ່ໃຈວ່າລຸ້ນ nginx ຢ່າງ ໜ້ອຍ 1.14 ແລະ 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
....

ຕອນນີ້ເລີ່ມຕົ້ນ, ເປີດໃຊ້ງານແລະກວດສອບການຕິດຕັ້ງ nginx.

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

ຕອນນີ້ເປີດເອກະສານການຕັ້ງຄ່າ nginx vhost /etc/nginx/conf.d/example.com.conf ໂດຍໃຊ້ບັນນາທິການທີ່ທ່ານມັກ.

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

ແລະຊອກຫາສະຖານທີ່ ssl_protocols ໂດຍກົງແລະເພີ່ມເອກະສານຊ້ອນທ້າຍ TLSv1.3 ໃນທ້າຍຂອງເສັ້ນດັ່ງທີ່ສະແດງຢູ່ຂ້າງລຸ່ມ

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

ສຸດທ້າຍ, ກວດສອບການຕັ້ງຄ່າແລະໂຫຼດ Nginx ຄືນ.

# nginx -t
# systemctl reload nginx.service

ເປີດໃຊ້ TLS 1.3 ໃນ Apache

ເລີ່ມຕົ້ນຈາກ Apache 2.4.37, ທ່ານສາມາດໃຊ້ປະໂຫຍດຈາກ TLS 1.3. ຖ້າທ່ານ ກຳ ລັງໃຊ້ Apache ລຸ້ນເກົ່າ, ທ່ານ ຈຳ ເປັນຕ້ອງໄດ້ຍົກລະດັບໃຫ້ເປັນເວີຊັນລ້າສຸດ.

# apt install apache2
# yum install httpd

ເມື່ອຕິດຕັ້ງແລ້ວ, ທ່ານສາມາດກວດສອບ Apache ແລະເວີຊັນ OpenSSL ຕໍ່ກັບ Apache ທີ່ຖືກລວບລວມ.

# httpd -V
# openssl version

ຕອນນີ້ເລີ່ມຕົ້ນ, ເປີດໃຊ້ງານແລະກວດສອບການຕິດຕັ້ງ 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

ຕອນນີ້ເປີດເອກະສານການຕັ້ງຄ່າ host virtual Apache ໂດຍໃຊ້ບັນນາທິການທີ່ທ່ານມັກ.

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

ແລະຊອກຫາສະຖານທີ່ ssl_protocols ໂດຍກົງແລະເພີ່ມເອກະສານຊ້ອນທ້າຍ TLSv1.3 ໃນທ້າຍຂອງເສັ້ນດັ່ງທີ່ສະແດງຢູ່ຂ້າງລຸ່ມ.

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

ສຸດທ້າຍ, ກວດສອບການຕັ້ງຄ່າແລະໂຫຼດ Apache ຄືນ.

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

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

ຢືນຢັນເວັບໄຊ ກຳ ລັງໃຊ້ TLS 1.3

ເມື່ອທ່ານໄດ້ ກຳ ຫນົດຄ່າຜ່ານ web server, ທ່ານສາມາດກວດເບິ່ງວ່າເວັບໄຊທ໌ຂອງທ່ານ ກຳ ລັງຈັບມືກັບໂປໂຕຄອນ TLS 1.3 ໂດຍໃຊ້ເຄື່ອງມືພັດທະນາໂປຣແກຣມທ່ອງເວັບ chrome ໃນລຸ້ນ Chrome 70+.

ຫມົດເທົ່ານີ້. ທ່ານໄດ້ເປີດໃຊ້ໂປແກຼມ TLS 1.3 ຢ່າງ ສຳ ເລັດຜົນໃນໂດເມນຂອງທ່ານທີ່ໂຮດຢູ່ໃນເຊີຟເວີ Apache ຫຼື Nginx. ຖ້າທ່ານມີ ຄຳ ຖາມກ່ຽວກັບບົດຂຽນນີ້, ທ່ານສາມາດສອບຖາມໄດ້ໃນສ່ວນ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.