TLS 1.3 เป็นรุ่นของ Transport Layer Security (TLS) โปรโตคอลที่ได้รับการตีพิมพ์ในปี 2018 เป็นมาตรฐานที่นำเสนอในRFC 8446 มันมีการปรับปรุงความปลอดภัยและประสิทธิภาพการทำงานมากกว่ารุ่นก่อน
คู่มือนี้จะสาธิตวิธีการเปิดใช้งาน TLS 1.3 โดยใช้ Apache เว็บเซิร์ฟเวอร์ใน FreeBSD 12
ความต้องการ
- อินสแตนซ์ Vultr Cloud Compute (VC2) ที่รัน FreeBSD 12
- ชื่อโดเมนที่ถูกต้องและการกำหนดค่าอย่างถูกต้อง
A
/ AAAA
/ CNAME
ระเบียน DNS สำหรับโดเมนของคุณ
- ใบรับรอง TLS ที่ถูกต้อง เราจะได้หนึ่งจาก Let's Encrypt
- Apache เวอร์ชัน
2.4.36
ขึ้นไป
- รุ่น OpenSSL
1.1.1
หรือสูงกว่า
ก่อนที่จะเริ่ม
ตรวจสอบเวอร์ชั่น FreeBSD
uname -ro
# FreeBSD 12.0-RELEASE
ตรวจสอบให้แน่ใจว่าระบบ FreeBSD ของคุณทันสมัย
freebsd-update fetch install
pkg update && pkg upgrade -y
ติดตั้งแพ็คเกจที่จำเป็นหากไม่มีอยู่ในระบบของคุณ
pkg install -y sudo vim unzip wget bash socat git
สร้างบัญชีผู้ใช้ใหม่ด้วยชื่อผู้ใช้ที่คุณต้องการ (เราจะใช้johndoe
)
adduser
# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!
รันvisudo
คำสั่งและยกเลิกหมายเหตุ%wheel ALL=(ALL) ALL
บรรทัดเพื่ออนุญาตให้สมาชิกของwheel
กลุ่มเรียกใช้งานคำสั่งใด ๆ
visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL
su
ตอนนี้เปลี่ยนไปใช้ที่สร้างขึ้นใหม่ของคุณด้วย
su - johndoe
หมายเหตุ: แทนที่johndoe
ด้วยชื่อผู้ใช้ของคุณ
ตั้งค่าเขตเวลา
sudo tzsetup
ติดตั้งacme.sh
ไคลเอนต์และรับใบรับรอง TLS จาก Let's Encrypt
acme.sh
ติดตั้ง
sudo pkg install -y acme.sh
ตรวจสอบเวอร์ชั่น
acme.sh --version
# v2.7.9
รับใบรับรอง RSA และ ECDSA สำหรับโดเมนของคุณ
# RSA
sudo acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength 2048
# ECC/ECDSA
sudo acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength ec-256
หมายเหตุ: แทนที่example.com
คำสั่งด้วยชื่อโดเมนของคุณ
สร้างไดเรกทอรีที่เหมาะสมในการจัดเก็บใบรับรองและคีย์ของคุณใน. /etc/letsencrypt
เราจะใช้
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
/etc/letsencrypt
ติดตั้งและคัดลอกใบรับรอง
# RSA
sudo acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem
# ECC/ECDSA
sudo acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem
หลังจากเรียกใช้คำสั่งข้างต้นใบรับรองและคีย์ของคุณจะอยู่ในตำแหน่งต่อไปนี้:
RSA
: /etc/letsencrypt/example.com
ECC/ECDSA
: /etc/letsencrypt/example.com_ecc
ติดตั้ง Apache
Apache เพิ่มการรองรับ TLS 1.3 ในรุ่น 2.4.36 ระบบ FreeBSD 12 มาพร้อมกับ Apache และ OpenSSL ที่รองรับ TLS 1.3 ไม่จำเป็นต้องสร้างรุ่นที่กำหนดเอง
ดาวน์โหลดและติดตั้ง Apache 2.4 สาขาล่าสุดผ่านทางpkg
ผู้จัดการแพ็คเกจ
sudo pkg install -y apache24
ตรวจสอบเวอร์ชั่น
httpd -v
# Server version: Apache/2.4.38 (FreeBSD)
เริ่มและเปิดใช้งาน Apache
sudo sysrc apache24_enable="yes"
sudo service apache24 start
ตอนนี้เราได้ติดตั้ง Apache เรียบร้อยแล้วเราก็พร้อมที่จะกำหนดค่าให้เริ่มใช้ TLS 1.3 บนเซิร์ฟเวอร์ของเรา
หมายเหตุ: ใน FreeBSD mod_ssl
โมดูลจะเปิดใช้งานตามค่าเริ่มต้นทั้งในแพ็คเกจและพอร์ต
รันsudo vim /usr/local/etc/apache24/httpd.conf
และรวมถึงโมดูล SSL โดยLoadModule ssl_module libexec/apache24/mod_ssl.so
ไม่ใส่หมายเหตุ
#LoadModule ssl_module libexec/apache24/mod_ssl.so
รันsudo vim /usr/local/etc/apache24/Includes/example.com.conf
และเติมไฟล์ด้วยการกำหนดค่าพื้นฐานต่อไปนี้
Listen 443
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
# RSA
SSLCertificateFile "/etc/letsencrypt/example.com/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/example.com/private.key"
# ECC
SSLCertificateFile "/etc/letsencrypt/example.com_ecc/fullchain.pem"
SSLCertificateKeyFile "/etc/letsencrypt/example.com_ecc/private.key"
</VirtualHost>
บันทึกไฟล์และออกด้วย:+ +WQ
ตรวจสอบการกำหนดค่า
sudo service apache24 configtest
โหลด Apache ใหม่
sudo service apache24 reload
เปิดไซต์ของคุณผ่านโปรโตคอล HTTPS ในเว็บเบราว์เซอร์ของคุณ ในการตรวจสอบ TLS 1.3 คุณสามารถใช้เครื่องมือพัฒนาเบราว์เซอร์หรือบริการ SSL Labs ภาพหน้าจอด้านล่างแสดงแท็บความปลอดภัยของ Chrome ที่ใช้งาน TLS 1.3
คุณเปิดใช้งาน TLS 1.3 ได้สำเร็จใน Apache บนเซิร์ฟเวอร์ FreeBSD ของคุณ TLS 1.3 เวอร์ชันสุดท้ายถูกกำหนดในเดือนสิงหาคม 2561 ดังนั้นจึงไม่มีเวลาที่ดีกว่าในการเริ่มใช้เทคโนโลยีใหม่นี้