สำหรับท่านที่ประสงค์ติดตั้ง 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";
        }
ไอเรียลลี่โฮส
สำหรับการสนับสนุน และช่วยเหลือ
http://www.ireallyhost.com/support

 

 

 

 

ข้อกำหนดในการเผยแพร่บทความ ข่าวสาร
** บทความนี้มีลิขสิทธิ์ ไม่อนุญาติให้คัดลอก ทำซ้ำ ดัดแปลงก่อนได้รับอนุญาต **
โปรดระบุแหล่งที่มา บริษัท เอ็กซ์ตร้า คอร์ปอเรชั่น จำกัด / https://www.ireallyhost.com
ทั่วไป
คู่มือ / วิธีการติดตั้ง SSL Certificate สำหรับ cPanel Web Control Panel
บริการ SSL Certificate - โดยไอเรียลลี่โฮส