วิธีรักษาความปลอดภัย Nginx ด้วย Let's Encrypt บน CentOS 8
Let's Encrypt ก่อตั้งขึ้นในเดือนเมษายน 2016 โดย Electronic Frontier Foundation (EFF) เป็นใบรับรองดิจิทัลฟรีแบบอัตโนมัติที่ให้การเข้ารหัส TLS สำหรับเว็บไซต์โดยไม่มีค่าใช้จ่ายใดๆ เลย
วัตถุประสงค์ของใบรับรอง Let's Encrypt คือการตรวจสอบ การสร้าง การลงนาม และการต่ออายุใบรับรองความปลอดภัยโดยอัตโนมัติ ใบรับรองนี้เปิดใช้งานการเชื่อมต่อที่เข้ารหัสไปยังเว็บเซิร์ฟเวอร์โดยใช้โปรโตคอล HTTPS ในลักษณะที่เรียบง่าย ไม่ยุ่งยาก โดยไม่ซับซ้อนใดๆ ใบรับรองมีอายุเพียง 90 วันเท่านั้น ซึ่งสามารถเปิดใช้งานการต่ออายุอัตโนมัติได้
การอ่านที่แนะนำ:วิธีรักษาความปลอดภัย Apache ด้วย Let's Encrypt SSL Certificate บน CentOS 8
ในบทความนี้ เราจะสาธิตวิธีการติดตั้ง Let's Encrypt เพื่อรับใบรับรอง SSL ฟรีเพื่อรักษาความปลอดภัยเว็บเซิร์ฟเวอร์ Nginx บน CentOS 8 ( คำแนะนำเดียวกันนี้ยังใช้ได้กับ RHEL 8) เราจะอธิบายให้คุณทราบถึงวิธีการต่ออายุใบรับรอง SSL ของคุณโดยอัตโนมัติ
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะดำเนินการตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้ในการตรวจสอบ
1. ชื่อโดเมนแบบเต็ม (FQDN) ชี้ไปยังที่อยู่ IP เฉพาะของเว็บเซิร์ฟเวอร์ สิ่งนี้จำเป็นต้องได้รับการกำหนดค่าในพื้นที่ไคลเอนต์ของผู้ให้บริการโฮสต์เว็บ DNS ของคุณ สำหรับบทช่วยสอนนี้ เราใช้ชื่อโดเมน linuxtechwhiz
ซึ่งชี้ไปยังที่อยู่ IP 34.70.245.117
2. คุณยังสามารถยืนยันสิ่งนี้ได้โดยดำเนินการค้นหาไปข้างหน้าโดยใช้คำสั่ง dig ดังที่แสดง
dig linuxtechwhiz.info
3. Nginx ติดตั้งและทำงานบนเว็บเซิร์ฟเวอร์ คุณสามารถยืนยันสิ่งนี้ได้โดยการเข้าสู่เทอร์มินัลแล้วรันคำสั่งด้านล่าง หากไม่ได้ติดตั้ง Nginx ให้ทำตามบทความของเราเพื่อติดตั้ง Nginx บน CentOS 8
sudo systemctl status nginx
4. คุณสามารถตรวจสอบได้โดยไปที่ URL ของเว็บเซิร์ฟเวอร์บนเว็บเบราว์เซอร์
http://server-IP-or-hostname
จาก URL เราจะเห็นได้อย่างชัดเจนว่าไซต์นั้นไม่ปลอดภัย ดังนั้นจึงไม่มีการเข้ารหัส นี่หมายความว่าคำขอใด ๆ ที่ส่งไปยังเว็บเซิร์ฟเวอร์สามารถดักจับได้ ซึ่งรวมถึงข้อมูลที่สำคัญและเป็นความลับ เช่น ชื่อผู้ใช้ รหัสผ่าน หมายเลขประกันสังคม และข้อมูลบัตรเครดิต และอีกมากมาย
ตอนนี้เรามาเริ่มกันเลยและติดตั้ง มาเข้ารหัสกันเถอะ
ขั้นตอนที่ 1 ติดตั้ง Certbot ใน CentOS 8
หากต้องการติดตั้งใบรับรอง Let’s Encrypt คุณต้องติดตั้ง certbot ก่อน นี่คือไคลเอ็นต์แบบขยายได้ที่ดึงใบรับรองความปลอดภัยจาก Let's Encrypt Authority และช่วยให้คุณสามารถตรวจสอบและกำหนดค่าใบรับรองโดยอัตโนมัติเพื่อใช้งานโดยเว็บเซิร์ฟเวอร์
ดาวน์โหลด certbot โดยใช้คำสั่ง curl
sudo curl -O https://dl.eff.org/certbot-auto
จากนั้น ย้ายใบรับรองไปยังไดเร็กทอรี /usr/local/bin
sudo mv certbot-auto /usr/local/bin/certbot-auto
จากนั้น กำหนดสิทธิ์ของไฟล์ให้กับไฟล์ certbot ดังที่แสดง
chmod 0755 /usr/local/bin/certbot-auto
ขั้นตอนที่ 2 กำหนดค่าบล็อกเซิร์ฟเวอร์ Nginx
บล็อกเซิร์ฟเวอร์ใน Nginx เทียบเท่ากับโฮสต์เสมือนใน Apache การตั้งค่าบล็อกเซิร์ฟเวอร์ไม่เพียงแต่ช่วยให้คุณตั้งค่าหลายเว็บไซต์ในเซิร์ฟเวอร์เดียว แต่ยังอนุญาตให้ Certbot พิสูจน์ความเป็นเจ้าของโดเมนให้กับ ผู้ออกใบรับรอง – CA
หากต้องการสร้างบล็อกเซิร์ฟเวอร์ ให้รันคำสั่งที่แสดง
sudo vim /etc/nginx/conf.d/www.linuxtechwhiz.info
อย่าลืมเปลี่ยนชื่อโดเมนด้วยชื่อโดเมนของคุณเอง จากนั้นวางการกำหนดค่าด้านล่าง
server {
server_name www.linuxtechwhiz.info;
root /opt/nginx/www.linuxtechwhiz.info;
location / {
index index.html index.htm index.php;
}
access_log /var/log/nginx/www.linuxtechwhiz.info.access.log;
error_log /var/log/nginx/www.linuxtechwhiz.info.error.log;
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
บันทึกไฟล์และออกจากโปรแกรมแก้ไขข้อความ
ขั้นตอนที่ 3: ติดตั้ง Lets Encrypt Certificate บน CentOS 8
ตอนนี้ใช้คำสั่ง certbot เพื่อเริ่มต้นการดึงข้อมูลและการกำหนดค่าใบรับรองความปลอดภัย Let's Encrypt
sudo /usr/local/bin/certbot-auto --nginx
คำสั่งนี้จะรันและติดตั้งแพ็คเกจ Python หลายแพ็คเกจและการขึ้นต่อกันดังที่แสดง
หลังจากนั้นจะตามด้วยข้อความโต้ตอบดังที่แสดง:
หากทุกอย่างเป็นไปด้วยดี คุณน่าจะเห็นข้อความแสดงความยินดีในตอนท้าย
เพื่อยืนยันว่าไซต์ Nginx ของคุณได้รับการเข้ารหัส ให้โหลดหน้าเว็บซ้ำและสังเกตสัญลักษณ์รูปกุญแจที่จุดเริ่มต้นของ URL สิ่งนี้บ่งชี้ว่าไซต์นั้นปลอดภัยโดยใช้การเข้ารหัส SSL/TLS
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับใบรับรองความปลอดภัย ให้คลิกที่สัญลักษณ์รูปแม่กุญแจแล้วเลือกตัวเลือก "ใบรับรอง"
ข้อมูลเพิ่มเติมเกี่ยวกับใบรับรองความปลอดภัยจะแสดงดังที่แสดงด้านล่าง
นอกจากนี้ หากต้องการทดสอบความแข็งแกร่งของใบรับรองความปลอดภัย ให้ไปที่ https://www.ssllabs.com/ssltest/ และค้นหาการวิเคราะห์สถานะของใบรับรองความปลอดภัยที่แม่นยำและเจาะลึกมากขึ้น
ขั้นตอนที่ 4 การต่ออายุใบรับรอง Let's Encrypt
ดังที่เราเห็นก่อนหน้านี้ ใบรับรองความปลอดภัยจะใช้ได้ในระยะเวลา 90 วันเท่านั้น และจะต้องต่ออายุก่อนหมดอายุ
คุณสามารถจำลองหรือทดสอบกระบวนการต่ออายุใบรับรองได้โดยการรันคำสั่ง:
sudo /usr/local/bin/certbot-auto renew --dry-run
บทสรุป
นี่เป็นการสรุปบทช่วยสอนเกี่ยวกับการรักษาความปลอดภัย Nginx ด้วย มาเข้ารหัสกันเถอะ บน CentOS 8 มาเข้ารหัสกันเถอะ นำเสนอวิธีที่มีประสิทธิภาพและไม่ยุ่งยากในการรักษาความปลอดภัยเว็บเซิร์ฟเวอร์ Nginx ของคุณ ซึ่งหากไม่เช่นนั้นแล้วจะเป็นเรื่องที่ซับซ้อนหากต้องทำด้วยตนเอง
เว็บไซต์ของคุณควรได้รับการเข้ารหัสอย่างสมบูรณ์แล้ว ไม่กี่สัปดาห์ก่อนวันหมดอายุของใบรับรอง EFF จะแจ้งเตือนคุณทางอีเมลเพื่อต่ออายุใบรับรองเพื่อหลีกเลี่ยงการหยุดชะงักที่อาจเกิดขึ้นเนื่องจากใบรับรองหมดอายุ นั่นคือทั้งหมดสำหรับวันนี้!