Cloudflare กับ Let’s Encrypt ใช้ร่วมกันอย่างไรไม่ให้ขัดกัน

เมื่อคุณต้องการใช้ Cloudflare และ Let’s Encrypt SSL Certificate ร่วมกัน คุณอาจเจอปัญหา SSL Error, Certificate Mismatch หรือปัญหาการเข้าถึงเว็บไซต์ที่ผิดปกติ บทความนี้จะอธิบายวิธีการใช้ Cloudflare ร่วมกับ Let’s Encrypt อย่างถูกต้องเพื่อไม่ให้เกิดปัญหา ซึ่งจะช่วยให้เว็บไซต์ของคุณปลอดภัยและมีความเร็วสูง

ความแตกต่างระหว่าง Cloudflare Edge Certificate และ Origin Certificate

Cloudflare มี Certificate 2 ประเภท ที่คุณต้องเข้าใจ:

  • Cloudflare Edge Certificate: เป็น Certificate ที่ Cloudflare เปิดให้กับผู้เข้าชมเว็บไซต์ของคุณ (ระหว่าง Browser และ Cloudflare) ประเภทนี้ Cloudflare จัดการให้โดยอัตโนมัติและไม่มีค่าใช้งาน
  • Origin Certificate: เป็น Certificate ที่ใช้ระหว่าง Cloudflare และ Origin Server (เซิร์ฟเวอร์ของคุณ) ซึ่งอาจเป็น Let’s Encrypt, Cloudflare Origin Certificate หรือ Certificate อื่น ๆ

บทบาทของแต่ละ Certificate:

Certificate Flow Diagram

ขั้นตอนที่ 1: เลือก SSL/TLS Mode ที่ถูกต้อง

ที่หน้า SSL/TLS Settings ของ Cloudflare ให้เลือกค่าที่เหมาะสม:

  • Full (Strict): ต้องใช้ Valid SSL Certificate บน Origin Server (เหมาะสำหรับ Let’s Encrypt) – แนะนำให้ใช้
  • Full: ยอมรับ Self-signed Certificate
  • Flexible: ไม่มีการเข้ารหัส HTTP ระหว่าง Cloudflare และ Origin Server (ไม่ปลอดภัย)

แนะนำ: หากคุณใช้ Let’s Encrypt บน VPS ให้เลือก Full (Strict) เพื่อให้มีความปลอดภัยสูงสุด

ขั้นตอนที่ 2: ตั้งค่า Let’s Encrypt ให้ถูกต้อง

หากคุณใช้ Let’s Encrypt บน VPS:

  1. ติดตั้ง Certbot หรือใช้ Plesk Auto-renewal feature
  2. ตั้งค่า Auto-renewal เพื่อให้ Certificate ต่ออายุโดยอัตโนมัติทุก 60 วัน
  3. หากใช้ DNS Challenge ให้ตั้งค่า API Token ของ Cloudflare เพื่อให้สามารถอัปเดต DNS records ได้
  4. ทดสอบ Renewal ก่อน Deploy ไปที่ Production

ขั้นตอนที่ 3: ตั้งค่า Cloudflare DNS และ Proxy

  • ให้แน่ใจว่า Domain DNS ชี้ไปยัง Origin Server ของคุณ (VPS)
  • เปิด Cloudflare Proxy (Orange Cloud) เพื่อให้ได้รับความเร็วและความปลอดภัยสูง
  • ปิด Flexible SSL และตั้งค่าเป็น Full (Strict)

ขั้นตอนที่ 4: ตรวจสอบ Certificate Status

เพื่อให้แน่ใจว่า Certificate ทั้งสอง (Cloudflare Edge Certificate และ Let’s Encrypt Origin Certificate) ทำงานร่วมกันอย่างถูกต้อง:

  • ตรวจสอบที่ Cloudflare Dashboard > SSL/TLS > Edge Certificates
  • ตรวจสอบที่ Origin Server ว่า Let’s Encrypt Certificate ยังไม่หมดอายุ
  • ใช้เครื่องมือเช่น SSL Checker เพื่อเช็ค Certificate Chain

ปัญหา 1: SSL Certificate Mismatch Error

สาเหตุ: Origin Server ไม่มี Certificate ที่ถูกต้อง หรือ Certificate หมดอายุ

การแก้ไข:

  • ตรวจสอบ Let’s Encrypt Certificate บน VPS ว่ายังไม่หมดอายุ
  • ตั้งค่า SSL/TLS Mode เป็น Full (Strict)
  • รีสตาร์ท Web Server (nginx, Apache)

ปัญหา 2: Certificate Renewal Failure

สาเหตุ: DNS Challenge ล้มเหลว หรือ Web Server ไม่รองรับ HTTP Challenge

การแก้ไข:

  • ตั้งค่า DNS Challenge ด้วย Cloudflare API Token
  • ตรวจสอบ Firewall Rules ไม่ได้บล็อก HTTP Request จากระหว่าง Certificate Renewal
  • ใช้ Plesk Auto-renewal feature ถ้าคุณใช้ Plesk บน VPS

สรุป

การใช้ Cloudflare ร่วมกับ Let’s Encrypt ไม่ยากเลย หากทำตามขั้นตอนที่ถูกต้อง คุณจะได้รับ:

  • ความปลอดภัยสูง (Encryption ทั้ง 2 ด้าน)
  • ความเร็วเว็บไซต์ที่ดี (จาก Cloudflare CDN)
  • การต่ออายุ Certificate โดยอัตโนมัติ
  • ลดความกังวลเรื่อง Certificate Management