NGINX คือ ตอนที่ 4 : การกำหนดค่า HTTPS และ SSL

  1. HTTPS และ SSL: รากฐานของการสื่อสารเว็บและแอปที่ปลอดภัย
  2. ใบรับรอง (Certificates) SSL: ภาพรวม
  3. การตั้งค่า HTTPS และ SSL ใน NGINX
    ขั้นตอนที่ 1: รับใบรับรอง SSL
    ขั้นตอนที่ 2: ติดตั้งใบรับรอง SSL
    ขั้นตอนที่ 3: กำหนดค่า NGINX ให้ใช้ SSL
    ขั้นตอนที่ 4: เปลี่ยนเส้นทาง HTTP เป็น HTTPS

ในขณะที่โลกดิจิตอลมีการทำเว็บและทำแอพ การรับรองความปลอดภัยและความสมบูรณ์ของข้อมูลของเราได้กลายเป็นสิ่งสำคัญยิ่ง การสื่อสารที่ปลอดภัยระหว่างเว็บเซิร์ฟเวอร์และไคลเอ็นต์ และระหว่างส่วนหลังของการทำเว็บและทำแอพและส่วนหน้า เป็นส่วนสำคัญของภาพนี้ ในบริบทนี้ HTTPS และ SSL ที่ใช้งานผ่านแพลตฟอร์มเช่น NGINX มีบทบาทสำคัญในการปกป้องการสื่อสารในการทำเว็บและทำแอพของคุณ

1. HTTPS และ SSL: รากฐานของการสื่อสารเว็บและแอปที่ปลอดภัย

HTTPS (Hypertext Transfer Protocol Secure) เป็นโปรโตคอลการสื่อสารทางอินเทอร์เน็ตที่ปกป้องความสมบูรณ์ของข้อมูลและการรักษาความลับ SSL (Secure Sockets Layer) พร้อมด้วย TLS (Transport Layer Security) ที่ตามมา สร้างเทคโนโลยีพื้นฐานเพื่อให้มั่นใจว่าข้อมูลที่แลกเปลี่ยนระหว่างเซิร์ฟเวอร์และไคลเอนต์ยังคงเป็นส่วนตัวและปลอดภัย

เมื่อคุณเข้าถึงเว็บไซต์หรือแบ็กเอนด์ของการทำเว็บและทำแอพโดยใช้ HTTPS การสื่อสารของคุณกับเซิร์ฟเวอร์จะถูกเข้ารหัสโดยใช้ SSL/TLS การเข้ารหัสนี้ป้องกันผู้แอบฟังไม่ให้เข้าใจเนื้อหาของการสื่อสาร ซึ่งจะช่วยรักษาความลับของข้อมูล คุณลักษณะนี้มีความสำคัญอย่างยิ่งเมื่อมีการแลกเปลี่ยนข้อมูลที่ละเอียดอ่อน เช่น หมายเลขบัตรเครดิต รายละเอียดส่วนบุคคล หรือข้อมูลรับรองการเข้าสู่ระบบ

2. ใบรับรอง (Certificates) SSL: ภาพรวม

ใบรับรอง SSL เป็นใบรับรองดิจิทัลที่ยืนยันตัวตนของเว็บไซต์หรือเซิร์ฟเวอร์แอป และเปิดใช้งานการเชื่อมต่อที่เข้ารหัสผ่าน SSL/TLS โดยทั่วไปจะออกโดยบุคคลที่สามที่เชื่อถือได้ซึ่งเรียกว่า Certificate Authority (CA) CA จะตรวจสอบตัวตนของเอนทิตีที่ขอใบรับรอง ดังนั้นจึงให้ระดับความน่าเชื่อถือแก่ผู้ใช้หรือระบบที่เชื่อมต่อกับเอนทิตีนั้น

ใบรับรอง SSL ประกอบด้วยสิ่งต่อไปนี้:

  1. ชื่อผู้ถือใบรับรอง
  2. หมายเลขซีเรียลของใบรับรองและวันหมดอายุ
  3. สำเนาคีย์สาธารณะของเจ้าของใบรับรอง
  4. ลายเซ็นดิจิทัลของผู้ออกใบรับรอง

3. การตั้งค่า HTTPS และ SSL ใน NGINX

หากต้องการตั้งค่า HTTPS และ SSL ใน NGINX สำหรับการสื่อสารผ่านในการทำเว็บและทำแอพ คุณต้องทำตามขั้นตอนเหล่านี้:

ขั้นตอนที่ 1: รับใบรับรอง SSL

คุณสามารถสร้างใบรับรองที่ลงนามด้วยตนเองเพื่อวัตถุประสงค์ในการทดสอบหรือขอรับใบรับรองจากผู้ออกใบรับรองที่เชื่อถือได้ หากการทำเว็บและทำแอพของคุณเผยแพร่ ขอแนะนำให้ใช้ใบรับรองที่ออกโดย CA องค์กรหลายแห่งเช่น Let’s Encrypt เสนอใบรับรอง SSL ฟรี

ขั้นตอนที่ 2: ติดตั้งใบรับรอง SSL

เมื่อคุณมีใบรับรอง SSL แล้ว คุณต้องติดตั้งบนเซิร์ฟเวอร์ของคุณ ใบรับรองมักจะมาในรูปแบบไฟล์สองไฟล์ – ไฟล์ใบรับรอง ( .crt) และไฟล์คีย์ส่วนตัว ( .key)

อัปโหลดไฟล์เหล่านี้ไปยังเซิร์ฟเวอร์ของคุณ ไดเร็กทอรีทั่วไปสำหรับวางไฟล์เหล่านี้บนเซิร์ฟเวอร์ Linux อาจ/etc/ssl/ เป็นตำแหน่งที่ปลอดภัยก็ได้

ขั้นตอนที่ 3: กำหนดค่า NGINX ให้ใช้ SSL

ตอนนี้ คุณต้องบอก NGINX ให้ใช้ใบรับรอง SSL สำหรับการเชื่อมต่อที่ปลอดภัย เปิดไฟล์การกำหนดค่า NGINX ของคุณ ( nginx.conf หรือไฟล์การกำหนดค่าเฉพาะเซิร์ฟเวอร์) และเพิ่มบรรทัดต่อไปนี้ภายในบล็อกเซิร์ฟเวอร์:

listen 443 ssl;
ssl_certificate /etc/ssl/your_certificate.crt;
ssl_certificate_key /etc/ssl/your_private.key;

ที่นี่listen 443 ssl;บอกให้ NGINX รับฟังการเชื่อมต่อ SSL บนพอร์ต 443 ซึ่งเป็นพอร์ตมาตรฐานสำหรับคำสั่ง HTTPS ssl_certificate และ ssl_certificate_key ชี้ไปที่ไฟล์ใบรับรองและคีย์ส่วนตัวตามลำดับ

ขั้นตอนที่ 4: เปลี่ยนเส้นทาง HTTP เป็น HTTPS

เพื่อให้แน่ใจว่าการรับส่งข้อมูลทั้งหมดไปยังเว็บหรือแอปแบ็คเอนด์ของคุณใช้ HTTPS ให้เพิ่มบล็อกเซิร์ฟเวอร์ใหม่ในการกำหนดค่า NGINX เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูล HTTP ทั้งหมดไปยัง HTTPS:

server {
    listen 80;
    server_name your_domain.com;
    return 301 https://$host$request_uri;
}

การกำหนดค่านี้บอกให้ NGINX รับฟังพอร์ต 80 (พอร์ต HTTP มาตรฐาน) และเปลี่ยนเส้นทางการรับส่งข้อมูลทั้งหมดไปยัง URL เดียวกันแต่ใช้ HTTPS

หลังจากทำการเปลี่ยนแปลงแล้ว ให้บันทึกไฟล์และออก ตรวจสอบไวยากรณ์การกำหนดค่าด้วยคำสั่ง nginx -t หากไวยากรณ์ใช้ได้ ให้รีสตาร์ท NGINX เพื่อใช้การเปลี่ยนแปลง


การใช้ HTTPS และ SSL ใน NGINX เป็นมาตรการรักษาความปลอดภัยที่สำคัญสำหรับการทำเว็บและทำแอพใดๆ ไม่เพียงแต่รักษาความปลอดภัยในการสื่อสารระหว่างเซิร์ฟเวอร์และไคลเอนต์ของคุณเท่านั้น แต่ยังช่วยสร้างความไว้วางใจให้กับผู้ใช้ของคุณ โดยเฉพาะอย่างยิ่งเมื่อมีการแลกเปลี่ยนข้อมูลที่ละเอียดอ่อน โปรดจำไว้ว่าการรักษาความปลอดภัยไม่ใช่งานที่ทำเพียงครั้งเดียว แต่เป็นกระบวนการที่ต่อเนื่อง ปรับปรุงใบรับรอง SSL ของคุณให้เป็นปัจจุบันเสมอ และคอยติดตามแนวทางปฏิบัติที่ดีที่สุดล่าสุดสำหรับการรักษาความปลอดภัยการสื่อสารในการทำเว็บและทำแอพ


NGINX คืออะไร

NGINX คือ ตอนที่ 3 : การบันทึก (Logging) และการดีบัก (Debugging)
NGINX คือ ตอนที่ 5 : Load Balancing และ Reverse Proxy