Automate SSL Certificate Renewal ด้วย Certbot + Cron บน VPS

บทนำ

ใบรับรอง SSL/TLS มีอายุ จำกัด โดยปกติ Let’s Encrypt ออกใบรับรองที่มีอายุ 90 วัน ถ้าจำนี้ไว้ด้วยตนเอง การต่ออายุจะซ้ำซ้อน แต่วิธีที่ดีที่สุดคือการตั้งค่า Certbot ให้อัตโนมัติ โดยใช้ Cron Job บน Cloud VPS ของคุณ บทความนี้จะสอนวิธีตั้งค่า Certbot ให้ต่ออายุ SSL อัตโนมัติด้วย Dry-run และ Webhook สำหรับการแจ้งเตือน

ความรู้เบื้องต้น

Certbot เป็นเครื่องมืออัตโนมัติของ Let’s Encrypt ที่ติดตั้งและต่ออายุใบรับรองได้ หากคุณเลือกใช้ Cloud VPS จาก Dot Enterprise คุณสามารถเข้าถึงควบคุมเต็มของเซิร์ฟเวอร์และสามารถตั้งค่าระบบอัตโนมัติได้ วิธีนี้ช่วยให้เว็บไซต์ของคุณปลอดภัยตลอดเวลา

ติดตั้ง Certbot บน Ubuntu/Debian

ขั้นแรกให้ติดตั้ง Certbot และ Certbot Cron:

sudo apt update
sudo apt install -y certbot python3-certbot-nginx
sudo apt install -y certbot-auto

สำหรับระบบที่ใช้ Nginx หรือ Apache ให้ติดตั้ง Plugin ที่เหมาะสม:

sudo apt install -y python3-certbot-nginx
# หรือ
sudo apt install -y python3-certbot-apache

การตั้งค่า Dry-run เพื่อทดสอบ

ก่อนตั้งค่าจริง ให้ทดสอบการต่ออายุด้วย Dry-run mode:

sudo certbot renew --dry-run --verbose

คำสั่งนี้จะทำการทดสอบการต่ออายุโดยไม่กระทบต่ออายุที่แท้จริง ถ้าไม่มีข้อผิดพลาด แสดงว่าการตั้งค่าถูกต้อง

ตั้งค่า Cron Job สำหรับการต่ออายุอัตโนมัติ

สร้าง Cron Job เพื่อให้ Certbot ตรวจสอบและต่ออายุใบรับรองทุกวัน:

sudo crontab -e

เพิ่มบรรทัดต่อไปนี้:

0 3 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"

บรรทัดนี้จะรันการต่ออายุทุกวันเวลา 3 โมงเช้า และจะ Reload Nginx หลังจากสำเร็จ

การตั้งค่า Webhook สำหรับการแจ้งเตือน

หากต้องการได้รับการแจ้งเตือนเมื่อการต่ออายุสำเร็จหรือล้มเหลว ให้สร้างสคริปต์เพื่อส่ง Webhook:

#!/bin/bash
WEBHOOK_URL="https://your-webhook.example.com/notify"
STATUS="success"
MESSAGE="SSL Certificate renewed successfully"

curl -X POST -H "Content-Type: application/json" \
  -d "{\"status\": \"$STATUS\", \"message\": \"$MESSAGE\"}" \
  $WEBHOOK_URL

แล้วเรียก Webhook นี้ใน Cron Job:

0 3 * * * /usr/bin/certbot renew --quiet --post-hook "/usr/local/bin/renewal-webhook.sh"

สรุป

การตั้งค่า Certbot ให้ต่ออายุ SSL อัตโนมัติช่วยให้ความปลอดภัยของเว็บไซต์ไม่ขาดเลย เมื่อใช้ Cloud VPS จาก Dot Enterprise (https://de.co.th/cloud-vps) คุณมีความควบคุมเต็มที่สำหรับการตั้งค่า Cron Job และ Webhooks ด้วยตัวเอง ทำให้เซิร์ฟเวอร์ของคุณปลอดภัยและใช้งานได้โดยไม่มีการหยุดชะงัก