Skip to main content
Back to articles

ตั้ง HTTPS ใน NGINX และดูแล Certificate

NGINX รับการเชื่อมต่อ TLS และถอดรหัสก่อนส่งคำขอไปแอป อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

ตั้ง HTTPS ใน NGINX และดูแล Certificate

NGINX รับการเชื่อมต่อ TLS และถอดรหัสก่อนส่งคำขอไปแอป เหมาะกับเว็บและ API ที่ต้องเข้ารหัสข้อมูลระหว่างผู้ใช้กับเซิร์ฟเวอร์ บทความนี้สรุปแนวคิดจากเอกสารทางการของ NGINX และจุดที่ควรตรวจเมื่อนำไปใช้จริง

ภาพรวม

NGINX รับและจัดเส้นทาง HTTP ก่อนถึงแอป การตั้ง location, upstream, header, timeout และ log มีผลต่อความถูกต้อง ความเร็ว และความปลอดภัยของบริการ

หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: NGINX รับการเชื่อมต่อ TLS และถอดรหัสก่อนส่งคำขอไปแอป จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ

หลักการทำงาน

server block อ้างอิง certificate กับ private key และเลือกโปรโตคอลที่รองรับ

ให้ตรวจทั้งสถานะที่เครื่องมือรายงานและผลลัพธ์ปลายทางที่ผู้ใช้หรือระบบอื่นได้รับ หากสองส่วนไม่ตรงกัน ควรกลับไปตรวจค่าตั้งต้นและขอบเขตที่ฟีเจอร์นี้รับผิดชอบก่อนเปลี่ยนค่าเพิ่มเติม

เหมาะกับงานแบบไหน

เหมาะกับเว็บและ API ที่ต้องเข้ารหัสข้อมูลระหว่างผู้ใช้กับเซิร์ฟเวอร์

ก่อนทดลอง ให้ระบุสิ่งที่จะใช้วัดผล เช่น เวลาตอบสนอง ความพร้อมใช้งาน ความถูกต้องของข้อมูล หรือภาระการดูแล แล้วเทียบกับสภาพเดิม วิธีนี้ช่วยให้รู้ว่าฟีเจอร์แก้ปัญหาจริงหรือย้ายภาระไปอีกจุดหนึ่ง

ขั้นตอนนำไปใช้

  1. ตรวจไฟล์ตั้งค่าด้วย nginx -t ก่อน reload
  2. ทดสอบ URL และ header ทั้งเส้นทางที่ถูกและควรถูกปฏิเสธ
  3. ดู access log, error log และเวลา upstream หลังเปลี่ยนค่า

เริ่มจากขอบเขตเล็กและเก็บผลทดสอบไว้กับการเปลี่ยนแปลง หากจะใช้ใน production ให้กำหนดผู้ติดตามผลและเงื่อนไขที่จะหยุดการขยายการใช้งาน

ข้อควรระวัง

ต้องปกป้อง private key ต่ออายุ certificate และพิจารณา TLS ระหว่าง proxy กับ backend ด้วย

แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ

สรุป

NGINX รับการเชื่อมต่อ TLS และถอดรหัสก่อนส่งคำขอไปแอป เหมาะกับเว็บและ API ที่ต้องเข้ารหัสข้อมูลระหว่างผู้ใช้กับเซิร์ฟเวอร์ ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

อ่านเพิ่มเติม: เอกสารทางการของ NGINX