สำหรับท่านที่ประสงค์ติดตั้ง SSL ให้กับ Nginx ใน Docker สามารถได้ได้ดังนี้
1. ทำการสร้างโฟลเดอร์ เก็บ Config Nginx และ ไฟล์ SSL
- mkdir -p /root/nginx/ssl
* สามารถเปลี่ยนที่อยู่โฟลเดอร์ ได้ตามต้องการ
- ทำการอัพโหลด private.key และ domain certificate + ca certificate ไปยังโฟลเดอร์
โดยทำการรวมไฟล์ ให้เรียบร้อย
- /root/nginx/ssl/domain_pack.crt # ไฟล์นี้ให้นำ domain.crt รวมกับ CARootCertificate-ca.crt
- /root/nginx/ssl/private.key # ไฟล์ private key
2. ทำการยกเลิก Docker Contrainer เดิม และ ลบออก
- docker ps
ทำการตรวจสอบ process รายชื่อ docker
- docker stop nginx
สั่งหยุดทำงาน
- docker rm nginx
สั่งลบ nginx container เดิม
หากพบ error ตามตัวอย่าง
docker: Error response from daemon: Conflict. The container name "/nginx" is already in use by container "2ba5829465a71f4b40b33317e5ad54e0814ec8a02a7f4ed3cb21eaac2fa56fc5". You have to remove (or rename) that container to be able to reust name.
ให้สั่ง docker rm 2ba5829465a71f4b40b33317e5ad54e0814ec8a02a7f4ed3cb21eaac2fa56fc5
3. เปิดใช้งาน SSL สำหรับ Nginx ในไฟล์ default.conf
ท่านสามารถปรับแก้ ตั้งค่า nginx config ได้ตามต้องการ
ตัวอย่างนี้จะเป็นการทำ reverse proxy ไปยัง service port อื่นๆ
server {
listen 80;
#server_name example.com *.example.com;
location / {
proxy_pass http://xxx.xxx.xxx.xxx:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
#server_name example.com *.example.com;
ssl_certificate /etc/nginx/ssl/domain_pack.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;
location / {
proxy_pass http://xxx.xxx.xxx.xxx:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
4. สั่ง Start Docker Service โดยทำการ Mount Volume ดังนี้
docker run -d --name nginx -p 80:80 -p 443:443 \
-v $(pwd)/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro \
-v $(pwd)/nginx/ssl/:/etc/nginx/ssl/:ro \
--restart=always nginx:1.21
- docker ps
ทำการตรวจสอบ ว่าสามารถรัน service ได้ปกติ
- ทดสอบเรียกเว็บไซต์ของท่าน
https://your-domain.com
หากท่านต้องการ verify http-file-base ด้วย nginx สามารถเขียน config คำสั่ง
location "/.well-known/pki-validation/ชื่อใดๆ.txt" {
default_type text/plain;
return 200 "467D710FAA6AF119Axxx...5DB1A18B754DBDC0A1\nsectigo.com";
}
ข้อกำหนดในการเผยแพร่บทความ ข่าวสาร
** บทความนี้มีลิขสิทธิ์ ไม่อนุญาติให้คัดลอก ทำซ้ำ ดัดแปลงก่อนได้รับอนุญาต **
โปรดระบุแหล่งที่มา บริษัท เอ็กซ์ตร้า คอร์ปอเรชั่น จำกัด / https://www.ireallyhost.com
** บทความนี้มีลิขสิทธิ์ ไม่อนุญาติให้คัดลอก ทำซ้ำ ดัดแปลงก่อนได้รับอนุญาต **
โปรดระบุแหล่งที่มา บริษัท เอ็กซ์ตร้า คอร์ปอเรชั่น จำกัด / https://www.ireallyhost.com
ทั่วไป
คู่มือ / วิธีการติดตั้ง SSL Certificate สำหรับ cPanel Web Control Panel
บริการ SSL Certificate - โดยไอเรียลลี่โฮส