การติดตั้งใบรับรอง SSL บนเซิร์ฟเวอร์ Nginx
คุณสามารถทำให้เซิร์ฟเวอร์ Nginx รองรับการเข้าถึงอย่างปลอดภัย HTTPS ได้โดยการติดตั้งใบรับรอง SSL ลงบนเซิร์ฟเวอร์ Nginx บทความนี้แนะนำวิธีการติดตั้งใบรับรอง SSL บนเซิร์ฟเวอร์ Nginx
เวอร์ชัน Nginx ในเอกสารนี้ใช้ nginx/1.18.0 เป็นตัวอย่าง
ก่อนการติดตั้ง โปรดตรวจสอบว่าพอร์ต 443 ไม่ถูกใช้งานอยู่ หากพอร์ต 443 ถูกใช้งานแล้ว โปรดผูกพอร์ตอื่นเมื่อติดตั้งใบรับรอง
การขอรับใบรับรอง
- หลังจากที่เราออกใบรับรองให้คุณแล้ว เราจะส่งไฟล์ใบรับรอง (.zip) ในรูปแบบบีบอัดให้คุณ ภายในไฟล์บีบอัดมีสี่โฟลเดอร์ซึ่งสอดคล้องกับรูปแบบใบรับรองสี่แบบ ได้แก่ Tomcat, Nginx, IIS, Apache; เซิร์ฟเวอร์ Nginx ต้องใช้ใบรับรองภายในโฟลเดอร์ Nginx
- โฟลเดอร์ Nginx จะประกอบด้วยสองไฟล์
- ไฟล์ใบรับรอง
domain_com_integrated.crt - ไฟล์คีย์ส่วนตัว
domain_com.key
การติดตั้งใบรับรอง SSL
- คัดลอกไฟล์ใบรับรอง
domain_com_integrated.crtและไฟล์คีย์ส่วนตัวdomain_com.keyที่ได้รับจากไดเรกทอรีในเครื่องไปยังไดเรกทอรี/etc/nginx/sslของเซิร์ฟเวอร์ Nginx
- หากไม่มีไดเรกทอรี
/etc/nginx/sslสามารถสร้างได้โดยใช้คำสั่งmkdir -p /etc/nginx/ssl - ตำแหน่งไดเรกทอรีอาจแตกต่างกันไปตามวิธีการติดตั้ง โปรดยึดตามสถานการณ์จริง
- แก้ไขไฟล์
nginx.confในไดเรกทอรีรากของ Nginx เนื้อหาที่แก้ไขมีดังนี้:
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 ของคุณติดตั้งสำเร็จหรือไม่ หากสำเร็จ แถบที่อยู่ของเบราว์เซอร์จะแสดงไอคอนแม่กุญแจปลอดภัย คลิกเพื่อดูข้อมูลใบรับรองได้

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