Skip to main content

การติดตั้งใบรับรอง SSL บนเซิร์ฟเวอร์ Nginx

คุณสามารถทำให้เซิร์ฟเวอร์ Nginx รองรับการเข้าถึงอย่างปลอดภัย HTTPS ได้โดยการติดตั้งใบรับรอง SSL ลงบนเซิร์ฟเวอร์ Nginx บทความนี้แนะนำวิธีการติดตั้งใบรับรอง SSL บนเซิร์ฟเวอร์ Nginx

หมายเหตุ

เวอร์ชัน Nginx ในเอกสารนี้ใช้ nginx/1.18.0 เป็นตัวอย่าง ก่อนการติดตั้ง โปรดตรวจสอบว่าพอร์ต 443 ไม่ถูกใช้งานอยู่ หากพอร์ต 443 ถูกใช้งานแล้ว โปรดผูกพอร์ตอื่นเมื่อติดตั้งใบรับรอง

การขอรับใบรับรอง

  1. หลังจากที่เราออกใบรับรองให้คุณแล้ว เราจะส่งไฟล์ใบรับรอง (.zip) ในรูปแบบบีบอัดให้คุณ ภายในไฟล์บีบอัดมีสี่โฟลเดอร์ซึ่งสอดคล้องกับรูปแบบใบรับรองสี่แบบ ได้แก่ Tomcat, Nginx, IIS, Apache; เซิร์ฟเวอร์ Nginx ต้องใช้ใบรับรองภายในโฟลเดอร์ Nginx
  2. โฟลเดอร์ Nginx จะประกอบด้วยสองไฟล์
  • ไฟล์ใบรับรอง domain_com_integrated.crt
  • ไฟล์คีย์ส่วนตัว domain_com.key

การติดตั้งใบรับรอง SSL

  1. คัดลอกไฟล์ใบรับรอง domain_com_integrated.crt และไฟล์คีย์ส่วนตัว domain_com.key ที่ได้รับจากไดเรกทอรีในเครื่องไปยังไดเรกทอรี /etc/nginx/ssl ของเซิร์ฟเวอร์ Nginx
  • หากไม่มีไดเรกทอรี /etc/nginx/ssl สามารถสร้างได้โดยใช้คำสั่ง mkdir -p /etc/nginx/ssl
  • ตำแหน่งไดเรกทอรีอาจแตกต่างกันไปตามวิธีการติดตั้ง โปรดยึดตามสถานการณ์จริง
  1. แก้ไขไฟล์ nginx.conf ในไดเรกทอรีรากของ Nginx เนื้อหาที่แก้ไขมีดังนี้:
nginx.conf
server {
listen 443 ssl;
#填写自己的域名,多个域名用空格隔开
server_name racent.com;

#填写证书文件的相对路径或绝对路径
ssl_certificate cloud.tencent.com_bundle.crt;

#填写私钥文件的相对路径或绝对路径
ssl_certificate_key cloud.tencent.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}

หมายเหตุ

เนื่องจากปัญหาเรื่องเวอร์ชัน ไฟล์ค่าคอนฟิกอาจมีรูปแบบการเขียนที่แตกต่างกัน เช่น: หากเวอร์ชัน Nginx เป็น nginx/1.15.0 หรือต่ำกว่า โปรดใช้ listen 443 และ ssl on แทน listen 443 ssl

หลังจากแก้ไขแล้ว ให้บันทึกไฟล์ค่าคอนฟิกและรันคำสั่งต่อไปนี้:

nginx -t         #验证配置文件是否正确
nginx -s reload #重载 Nginx

ทดสอบใบรับรอง SSL

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

ผลลัพธ์ใบรับรอง SSL

การตั้งค่าความปลอดภัยสำหรับการเปลี่ยนเส้นทาง HTTP ไปยัง HTTPS อัตโนมัติ (ทางเลือก)

หากคุณต้องการเปลี่ยนเส้นทางคำขอ HTTP ไปยัง HTTPS โดยอัตโนมัติ คุณสามารถตั้งค่าได้โดยทำตามขั้นตอนต่อไปนี้:

  1. ใช้ฟีเจอร์เปลี่ยนเส้นทางของ Nginx เพิ่ม return 301 https://$host$request_uri; ใน server ของ HTTP ก็จะสามารถเปลี่ยนเส้นทางคำขอ HTTP เป็น HTTPS ได้ แก้ไขเนื้อหาดังนี้:
server {
listen 80;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}

  1. รีสตาร์ทเซิร์ฟเวอร์ Nginx ก็สามารถใช้โดเมนเนมเพื่อเข้าถึงได้ โดยให้ HTTP เปลี่ยนเส้นทางอัตโนมัติไปยัง HTTPS