บทนำ
TLS 1.3 เป็นรุ่นของ Transport Layer Security (TLS) โปรโตคอลที่ได้รับการตีพิมพ์ในปี 2018 เป็นมาตรฐานที่นำเสนอในRFC 8446 มันมีการปรับปรุงความปลอดภัยและประสิทธิภาพการทำงานมากกว่ารุ่นก่อน
คู่มือนี้จะสาธิตวิธีการเปิดใช้งาน TLS 1.3 โดยใช้เว็บเซิร์ฟเวอร์ Nginx ใน Fedora 29
ความต้องการ
- รุ่น Nginx
1.13.0
หรือสูงกว่า
- รุ่น OpenSSL
1.1.1
หรือสูงกว่า
- อินสแตนซ์ Vultr Cloud Compute (VC2) ที่ใช้งาน Fedora 29
- ชื่อโดเมนที่ถูกต้องและการกำหนดค่าอย่างถูกต้อง
A
/ AAAA
/ CNAME
ระเบียน DNS สำหรับโดเมนของคุณ
- ใบรับรอง TLS ที่ถูกต้อง เราจะได้หนึ่งจาก Let's Encrypt
ก่อนที่จะเริ่ม
ตรวจสอบเวอร์ชั่นของ Fedora
cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)
สร้างnon-root
บัญชีผู้ใช้ใหม่ด้วยsudo
การเข้าถึงและเปลี่ยนเป็นบัญชี
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
หมายเหตุ: แทนที่johndoe
ด้วยชื่อผู้ใช้ของคุณ
ตั้งค่าเขตเวลา
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
ตรวจสอบให้แน่ใจว่าระบบของคุณทันสมัย
sudo dnf check-upgrade || sudo dnf upgrade -y
ติดตั้งแพ็คเกจที่จำเป็น
sudo dnf install -y socat git
ปิดใช้งาน SELinux และไฟร์วอลล์
sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalld
ติดตั้งไคลเอนต์ Acme.sh และรับใบรับรอง TLS จาก Let's Encrypt
ในคู่มือนี้เราจะใช้ไคลเอ็นต์ Acme.sh เพื่อรับใบรับรอง SSL จาก Let's Encrypt คุณสามารถใช้ไคลเอนต์ที่คุณคุ้นเคยมากที่สุด
ดาวน์โหลดและติดตั้งAcme.sh
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
ตรวจสอบเวอร์ชั่น
/etc/letsencrypt/acme.sh --version
# v2.8.1
รับใบรับรอง RSA และ ECDSA สำหรับโดเมนของคุณ
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength ec-256
หมายเหตุ: แทนที่example.com
คำสั่งด้วยชื่อโดเมนของคุณ
หลังจากเรียกใช้คำสั่งก่อนหน้าใบรับรองและกุญแจของคุณจะสามารถเข้าถึงได้ที่:
/etc/letsencrypt/example.com
อาร์เอส:
- ECC /
/etc/letsencrypt/example.com_ecc
ECDSA:
ติดตั้ง Nginx
Nginx เพิ่มการรองรับ TLS 1.3 ในรุ่น 1.13.0 Fedora 29 มาพร้อมกับ Nginx และ OpenSSL ที่รองรับ TLS 1.3 นอกกรอบดังนั้นจึงไม่จำเป็นต้องสร้างรุ่นที่กำหนดเอง
ติดตั้ง Nginx
sudo dnf install -y nginx
ตรวจสอบเวอร์ชั่น
nginx -v
# nginx version: nginx/1.14.2
ตรวจสอบเวอร์ชั่น OpenSSL ที่ Nginx รวบรวม
nginx -V
# built with OpenSSL 1.1.1b FIPS 26 Feb 2019
เริ่มและเปิดใช้งาน Nginx
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
ตอนนี้เราได้ติดตั้ง Nginx เรียบร้อยแล้วเราก็พร้อมที่จะกำหนดค่าด้วยการกำหนดค่าที่เหมาะสมเพื่อเริ่มใช้ TLS 1.3 บนเซิร์ฟเวอร์ของเรา
รันsudo vim /etc/nginx/conf.d/example.com.conf
คำสั่งและเติมไฟล์ด้วยการกำหนดค่าต่อไปนี้
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;
}
บันทึกไฟล์และออกด้วย:+ +WQ
สังเกตเห็นTLSv1.3
พารามิเตอร์ใหม่ของssl_protocols
คำสั่ง พารามิเตอร์นี้จำเป็นต่อการเปิดใช้งาน TLS 1.3 บน Nginx เท่านั้น
ตรวจสอบการกำหนดค่า
sudo nginx -t
โหลดซ้ำ Nginx
sudo systemctl reload nginx.service
ในการตรวจสอบ TLS 1.3 คุณสามารถใช้เครื่องมือพัฒนาเบราว์เซอร์หรือบริการ SSL Labs ภาพหน้าจอด้านล่างแสดงแท็บความปลอดภัยของ Chrome
นั่นคือทั้งหมดที่ คุณเปิดใช้งาน TLS 1.3 ใน Nginx บนเซิร์ฟเวอร์ Fedora 29 ของคุณเรียบร้อยแล้ว TLS 1.3 เวอร์ชันสุดท้ายถูกกำหนดในเดือนสิงหาคม 2561 ดังนั้นจึงไม่มีเวลาที่ดีกว่าในการเริ่มใช้เทคโนโลยีใหม่นี้