Let’s Encrypt SSL เป็นบริการออกใบรับรอง SSL/TLS ฟรีที่เชื่อถือได้ โดยหลายคนเลือกใช้ร่วมกับ Cloudflare เพื่อเพิ่มความปลอดภัย และการตั้งค่ากับ VPS นั้นไม่ยุ่งยากเลย บทความนี้จะอธิบายวิธีการติดตั้ง Let’s Encrypt SSL บน VPS ผ่าน Cloudflare รวมถึงการตั้งค่า Full (Strict) mode และการต่ออายุอัตโนมัติให้สมบูรณ์
Let’s Encrypt คืออะไร และเหตุใดจึงต้องใช้
Let’s Encrypt เป็นหน่วยงานออกใบรับรองดิจิทัล (Certificate Authority) ที่ไม่หวังผลกำไร โดยมี Apache, Cloudflare, Google และหน่วยงานอื่นรองรับ Let’s Encrypt ออกใบรับรอง SSL/TLS ฟรีที่มีความปลอดภัยเท่ากับใบรับรองแบบจ่ายเงิน แต่สามารถใช้ได้ฟรี ซึ่งเหมาะสำหรับเว็บไซต์ทั่วไป บล็อก เว็บแอปพลิเคชน และเซิร์ฟเวอร์ต่าง ๆ
ความสำคัญของ Let’s Encrypt:
- เข้ารหัส HTTPS อัตโนมัติ ป้องกันการขโมยข้อมูล
- ช่วยเพิ่ม SEO เนื่องจาก Google ให้ความสำคัญกับเว็บไซต์ที่มี HTTPS
- ใบรับรองเรียนใจ (DV – Domain Validated) อนุมัติได้รวดเร็ว
- ต่ออายุอัตโนมัติทุก 90 วันโดยไม่มีค่าใช้จ่าย
- รองรับ Wildcard SSL สำหรับซับโดเมนได้ง่าย
SSL/TLS Mode บน Cloudflare คืออะไร
Cloudflare มี 4 โหมดการทำงานของ SSL/TLS ที่ต่างกัน โดยโหมด Full (Strict) เป็นตัวเลือกที่ปลอดภัยที่สุด:
- Off (Flexible): ไม่มี SSL ระหว่าง Origin Server กับ Cloudflare (ไม่แนะนำ)
- Full: มี SSL แต่ไม่ตรวจสอบ Certificate (ปลอดภัยน้อย)
- Full (Strict): ตรวจสอบ Certificate อย่างเข้มงวด (ปลอดภัยมาก) – แนะนำ
- Strict (SSL only): รองรับเฉพาะ Modern TLS ซีเรีย
สำหรับ VPS ขอแนะนำให้ใช้ Full (Strict) เพื่อความปลอดภัยสูงสุด ซึ่งต้องมี SSL Certificate ที่ถูกต้องตั้งไว้บน Origin Server (VPS)
sudo apt-get update
sudo apt-get install certbot python3-certbot-apache -y
ขั้นที่ 2: สร้าง SSL Certificate สำหรับโดเมนของคุณ
sudo certbot certonly --apache -d yourdomain.com -d www.yourdomain.com
ระบบจะถามให้ยืนยันอีเมล ตั้งค่า Renewal ให้อัตโนมัติ และจะสร้าง Certificate ไว้ที่ `/etc/letsencrypt/live/yourdomain.com/`
ขั้นที่ 3: ตั้งค่า Web Server (Apache/Nginx) ให้ใช้ SSL Certificate
สำหรับ Apache หรือ Plesk บน VPS ให้ตั้งค่า VirtualHost ให้ชี้ไปที่ SSL Certificate:
<VirtualHost *:443>
ServerName yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
</VirtualHost>
หากใช้ Plesk ให้ไปที่ Domains > yourdomain.com > SSL Certificates และอัปโหลด Certificate
การตั้งค่า Full (Strict) Mode บน Cloudflare
ขั้นตอน:
- เข้าไปที่ Cloudflare Dashboard > SSL/TLS
- ที่ส่วน “Overview” ให้เลือก “Full (Strict)”
- รอประมาณ 5-10 นาทีให้มีการซิงค์
- ตรวจสอบหน้าเว็บว่ายังสามารถเข้าถึงได้ปกติหรือไม่
เมื่อเลือก Full (Strict) แล้ว Cloudflare จะตรวจสอบ Certificate ของ Origin Server (VPS) ทุกครั้งที่มีการเชื่อมต่อ หากไม่มีหรือไม่ถูกต้อง จะเกิด Error 525-526 SSL Handshake Failed
การตั้งค่าการต่ออายุอัตโนมัติ (Auto-Renewal)
Let’s Encrypt Certificate จะหมดอายุทุก 90 วัน ดังนั้นจึงควรตั้งค่าการต่ออายุอัตโนมัติด้วย Certbot
sudo systemctl enable certbot.timer
sudo systemctl start certbot.timer
ตรวจสอบสถานะการต่ออายุด้วยคำสั่ง:
sudo systemctl status certbot.timer
หากต้องการตรวจสอบว่า Renewal Schedule ถูกต้องหรือไม่:
sudo certbot renew --dry-run
- ตรวจสอบการต่ออายุ: ตั้งค่า Email Notification ให้แจ้งเตือนเมื่อ Certificate กำลังหมดอายุ
- Redirect HTTP เป็น HTTPS: เพิ่ม Rewrite Rule ใน .htaccess เพื่อบังคับให้เข้ามาผ่าน HTTPS
- ทดสอบ SSL: ใช้เว็บไซต์ https://www.ssllabs.com/ssltest/ เพื่อตรวจสอบคุณภาพของ SSL
- Wildcard Certificate: หากต้องการใช้ Wildcard ให้ใช้ DNS Validation แทน HTTP Validation
- ให้บริการจาก Cloudflare: บริการ Cloudflare ที่ DE มีการรองรับเต็มรูปแบบ ทำให้ Connection ระหว่าง Client ไป Cloudflare Edge ปลอดภัยอย่างสูง
บทสรุป
การติดตั้ง Let’s Encrypt SSL บน VPS ผ่าน Cloudflare นั้นสามารถทำได้อย่างง่ายดาย โดยปฏิบัติตามขั้นตอนข้างต้น คุณจะสามารถเพิ่มความปลอดภัยให้เว็บไซต์ได้ แล้วตั้งค่าให้ต่ออายุอัตโนมัติ ซึ่งจะทำให้คุณไม่ต้องกังวลกับการหมดอายุของ Certificate อีก นอกจากนี้การใช้ Cloudflare Full (Strict) Mode ร่วมกับ Let’s Encrypt ยังช่วยเพิ่มความปลอดภัย SEO และประสิทธิภาพให้เว็บไซต์ของคุณได้อีกด้วย

