กัน Domain หมดอายุ ด้วยระบบเตือนและรายการตรวจสอบ

วางระบบที่ทำให้โดเมนไม่มีวันหมดอายุโดยไม่มีใครรู้ตัว ทั้งการตั้งต่ออายุอัตโนมัติ การเฝ้าดูจากภายนอก และขั้นตอนกู้เมื่อพลาด

โดย ทีมงาน THAI DATA CLOUD อัปเดต อ่าน 10 นาที เข้าชม 4 ครั้ง

แชร์FacebookXLINELinkedIn
Domain — กัน Domain หมดอายุ ด้วยระบบเตือนและรายการตรวจสอบ
กัน Domain หมดอายุ ด้วยระบบเตือนและรายการตรวจสอบ

คำตอบสั้น ๆ: วางระบบที่ทำให้โดเมนไม่มีวันหมดอายุโดยไม่มีใครรู้ตัว ทั้งการตั้งต่ออายุอัตโนมัติ การเฝ้าดูจากภายนอก และขั้นตอนกู้เมื่อพลาด

คู่มือนี้อธิบาย Domain ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย

โดเมนหมดอายุคือเหตุการณ์ที่ทำให้ทั้งเว็บไซต์และอีเมลขององค์กรหยุดทำงานพร้อมกันในวินาทีเดียว และในกรณีที่แย่ที่สุดคือมีคนอื่นจดต่อไปแล้วขายคืนในราคาสูง

สาเหตุแทบทุกครั้งเหมือนกันคือ อีเมลแจ้งเตือนส่งไปยังบัญชีของพนักงานที่ลาออกไปแล้ว หรือบัตรเครดิตที่ผูกไว้หมดอายุ คู่มือนี้วางระบบที่ทำให้เรื่องนี้ไม่เกิดขึ้น

สิ่งที่ต้องเตรียม

  • รายการโดเมนทั้งหมดขององค์กร รวมถึงที่จดไว้แต่ยังไม่ได้ใช้
  • สิทธิ์เข้าถึงบัญชีผู้รับจดทะเบียนทุกราย
  • อีเมลกลางขององค์กรสำหรับรับการแจ้งเตือน

ขั้นตอนที่ 1: ทำบัญชีรายการโดเมนทั้งหมด

องค์กรจำนวนมากไม่รู้ว่าตัวเองมีโดเมนกี่ชื่อ เพราะจดกระจายกันหลายคนหลายที่

#!/bin/bash
# ตรวจวันหมดอายุของโดเมนในรายการ
for d in example.com example.co.th example.net brand.co.th; do
  exp=$(whois "$d" 2>/dev/null \
    | grep -iE 'expir|Exp date|paid-till' \
    | head -1 | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}|[0-9]{2}-[A-Za-z]{3}-[0-9]{4}')
  reg=$(whois "$d" 2>/dev/null | grep -i 'Registrar:' | head -1 | cut -d: -f2- | xargs)
  printf '%-24s %-14s %s\n' "$d" "${exp:-ไม่ทราบ}" "${reg:-ไม่ทราบ}"
done

บันทึกผลลงเอกสารกลางพร้อมข้อมูลเหล่านี้

  • ชื่อโดเมนและวันหมดอายุ
  • ผู้รับจดทะเบียนและบัญชีที่ใช้จัดการ
  • ผู้รับผิดชอบในองค์กร
  • ระบบที่พึ่งพาโดเมนนั้น เช่น เว็บหลัก อีเมล หรือ API

ขั้นตอนที่ 2: ย้ายอีเมลผู้ติดต่อไปที่บัญชีกลาง

นี่คือการแก้ที่ต้นเหตุที่แท้จริง ตั้งอีเมลผู้ติดต่อของทุกโดเมนเป็นบัญชีกลางที่ไม่ผูกกับตัวบุคคล

[email protected]
[email protected]

ตั้งให้อีเมลนี้ส่งต่อไปยังหลายคน อย่างน้อยสองคนที่รับผิดชอบ และตรวจว่าอีเมลนี้ยังทำงานอยู่จริง

whois example.com | grep -iE 'registrant email|admin email|tech email'

อย่าใช้อีเมลที่ใช้โดเมนเดียวกันเป็นผู้ติดต่อเพียงอย่างเดียว เพราะเมื่อโดเมนหมดอายุ อีเมลก็หยุดทำงานด้วย จึงไม่ได้รับการแจ้งเตือน ให้ใช้อีเมลสำรองจากโดเมนอื่นหรือบริการภายนอกเป็นผู้ติดต่อสำรอง

ขั้นตอนที่ 3: เปิดต่ออายุอัตโนมัติและตรวจบัตร

เปิดที่ผู้รับจดทะเบียนทุกราย แล้วตรวจว่าบัตรเครดิตที่ผูกไว้ยังไม่หมดอายุ

บัตรเครดิตมีอายุ 3-5 ปี ในขณะที่โดเมนอาจต่ออายุทุก 1-10 ปี จึงเกิดกรณีที่เปิดต่ออายุอัตโนมัติไว้แต่ชำระเงินไม่สำเร็จเพราะบัตรหมดอายุ

ตั้งเตือนในปฏิทินให้ตรวจบัตรทุก 6 เดือน และพิจารณาต่ออายุโดเมนสำคัญล่วงหน้าหลายปีในครั้งเดียว ซึ่งลดจำนวนครั้งที่ต้องต่อและยังส่งสัญญาณความน่าเชื่อถือต่อเครื่องมือค้นหา

ขั้นตอนที่ 4: ล็อกโดเมน

whois example.com | grep -i status

สถานะที่ควรเห็น

  • clientTransferProhibited ป้องกันการย้ายผู้รับจดทะเบียนโดยไม่ได้รับอนุญาต
  • clientUpdateProhibited ป้องกันการแก้ไขข้อมูล
  • clientDeleteProhibited ป้องกันการลบ

เปิดทั้งสามได้ในหน้าจัดการโดเมน สำหรับโดเมนที่สำคัญมาก พิจารณาใช้บริการล็อกระดับรีจิสทรีเพิ่ม ซึ่งต้องยืนยันตัวตนหลายขั้นก่อนแก้ไขใด ๆ

เปิดการยืนยันตัวตนสองขั้นตอนสำหรับบัญชีที่ผู้รับจดทะเบียนด้วย บัญชีที่ถูกเจาะหมายถึงโดเมนถูกย้ายออกไป ซึ่งกู้คืนยากกว่าการหมดอายุมาก

ขั้นตอนที่ 5: ตั้งระบบเฝ้าดูจากภายนอก

อย่าพึ่งการแจ้งเตือนจากผู้รับจดทะเบียนอย่างเดียว ตั้งระบบของตัวเองที่ตรวจสอบอิสระ

#!/bin/bash
# /usr/local/bin/check-domain-expiry.sh
set -uo pipefail

DOMAINS="example.com example.co.th example.net"
WARN_DAYS=60
ALERT=""

for d in $DOMAINS; do
  raw=$(whois "$d" 2>/dev/null | grep -iE 'expir|paid-till' | head -1)
  date_str=$(echo "$raw" | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}')
  [ -z "$date_str" ] && { ALERT="$ALERT\n$d: อ่านวันหมดอายุไม่ได้"; continue; }

  exp_epoch=$(date -d "$date_str" +%s 2>/dev/null) || continue
  now_epoch=$(date +%s)
  days=$(( (exp_epoch - now_epoch) / 86400 ))

  printf '%-24s หมดอายุ %s (อีก %d วัน)\n' "$d" "$date_str" "$days"
  if [ "$days" -lt "$WARN_DAYS" ]; then
    ALERT="$ALERT\n$d หมดอายุในอีก $days วัน ($date_str)"
  fi
done

if [ -n "$ALERT" ]; then
  echo -e "$ALERT" | mail -s "เตือน: โดเมนใกล้หมดอายุ" [email protected]
fi
sudo chmod +x /usr/local/bin/check-domain-expiry.sh
sudo /usr/local/bin/check-domain-expiry.sh

ตั้งรันทุกวันด้วย systemd Timer และส่งผลเข้าแชทของทีมด้วย ไม่ใช่แค่อีเมล

ขั้นตอนที่ 6: เฝ้าดูใบรับรอง SSL ควบคู่กัน

ใบรับรองหมดอายุสร้างปัญหาคล้ายกันและเกิดบ่อยกว่าเพราะมีอายุสั้นกว่ามาก

#!/bin/bash
for d in example.com www.example.com mail.example.com; do
  exp=$(echo | openssl s_client -connect "$d:443" -servername "$d" 2>/dev/null \
        | openssl x509 -noout -enddate | cut -d= -f2)
  exp_epoch=$(date -d "$exp" +%s)
  days=$(( (exp_epoch - $(date +%s)) / 86400 ))
  printf '%-28s อีก %d วัน  (%s)\n' "$d" "$days" "$exp"
done

เพิ่มการตรวจสอบทั้งสองอย่างเข้า Uptime Kuma ซึ่งมีการแจ้งเตือนวันหมดอายุของใบรับรองในตัว

ขั้นตอนที่ 7: เข้าใจช่วงเวลาหลังหมดอายุ

เมื่อโดเมนหมดอายุ ยังมีโอกาสกู้คืนแต่ยากขึ้นและแพงขึ้นตามลำดับ

  • ช่วงผ่อนผัน ประมาณ 0-30 วันหลังหมดอายุ ต่ออายุได้ในราคาปกติ เว็บและอีเมลหยุดทำงานแล้วในช่วงนี้
  • ช่วงไถ่ถอน ประมาณ 30-60 วัน ต่อได้แต่มีค่าธรรมเนียมสูง มักหลายพันบาท
  • ช่วงรอปล่อย ประมาณ 5 วันก่อนกลับสู่ตลาด ทำอะไรไม่ได้แล้ว
  • ปล่อยสู่สาธารณะ ใครก็จดได้ มักมีบริการที่คอยจับโดเมนหมดอายุจดทันทีเพื่อนำมาขายต่อ

ระยะเวลาต่างกันตามนามสกุลโดเมน สำหรับ .th ควรสอบถามผู้รับจดทะเบียนโดยตรง

ขั้นตอนที่ 8: รายการตรวจสอบประจำปี

  • ตรวจรายการโดเมนทั้งหมดว่าครบและยังต้องการใช้ทุกชื่อ
  • ตรวจอีเมลผู้ติดต่อของทุกโดเมนว่ายังใช้งานได้
  • ตรวจบัตรเครดิตที่ผูกไว้ว่ายังไม่หมดอายุ
  • ตรวจว่าล็อกทั้งสามสถานะยังเปิดอยู่
  • ตรวจว่าการยืนยันตัวตนสองขั้นตอนของบัญชีผู้รับจดทะเบียนยังทำงาน
  • ตรวจว่ามีคนในองค์กรอย่างน้อยสองคนที่เข้าถึงบัญชีได้
  • ทดสอบว่าสคริปต์เฝ้าดูยังส่งการแจ้งเตือนได้จริง

ปัญหาที่พบบ่อยเกี่ยวกับ Domain

whois อ่านวันหมดอายุไม่ได้

รูปแบบข้อมูลต่างกันในแต่ละรีจิสทรี โดยเฉพาะ .th ปรับสคริปต์ให้รองรับรูปแบบที่ใช้จริง หรือใช้ API ของผู้รับจดทะเบียนแทนซึ่งเชื่อถือได้กว่า

โดเมนหมดอายุแล้วแต่เพิ่งรู้

ติดต่อผู้รับจดทะเบียนทันที ยิ่งเร็วยิ่งมีโอกาสและค่าใช้จ่ายน้อย และตรวจว่าอยู่ในช่วงใดตามขั้นตอนที่ 7

ไม่รู้ว่าใครเป็นเจ้าของบัญชีที่จดโดเมนไว้

ดูจาก whois ว่าผู้รับจดทะเบียนคือใคร แล้วติดต่อฝ่ายสนับสนุนพร้อมเอกสารยืนยันความเป็นเจ้าของขององค์กร กระบวนการนี้ใช้เวลา จึงควรทำก่อนที่โดเมนจะใกล้หมดอายุ

ต้องการย้ายโดเมนมารวมที่เดียว

ทำได้แต่ต้องปลดล็อกการย้ายชั่วคราวและขอ Auth Code ระวังว่าการย้ายใกล้วันหมดอายุมีความเสี่ยง ควรต่ออายุก่อนแล้วค่อยย้าย

ต้องการบริการจดและดูแลโดเมนขององค์กรแบบครบวงจร ติดต่อ THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/

สรุปขั้นตอน Domain

ทบทวน Domain ทั้งหมดตามลำดับ ก่อนนำไปใช้กับระบบจริง

  1. ทำบัญชีรายการโดเมนทั้งหมด
  2. ย้ายอีเมลผู้ติดต่อไปที่บัญชีกลาง
  3. เปิดต่ออายุอัตโนมัติและตรวจบัตร
  4. ล็อกโดเมน
  5. ตั้งระบบเฝ้าดูจากภายนอก
  6. เฝ้าดูใบรับรอง SSL ควบคู่กัน
  7. เข้าใจช่วงเวลาหลังหมดอายุ
  8. รายการตรวจสอบประจำปี

เมื่อทำครบทุกข้อแล้ว Domain จะพร้อมใช้งาน หากผลลัพธ์ไม่เป็นไปตามที่คาด ให้ย้อนกลับไปดูหัวข้อปัญหาที่พบบ่อยด้านบน ซึ่งรวบรวมกรณีที่พบจริงจากการใช้งาน Domain ไว้แล้ว

อ่านเพิ่มเติมเกี่ยวกับ Domain

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน