SSL
ทำไม SSL Certificate หมดอายุเป็นปัญหาใหญ่?
SSL Certificate มีอายุการใช้งาน โดยทั่วไปจะอยู่ระหว่าง 1 ปีถึง 3 ปี เมื่อ Certificate หมดอายุแล้ว เบราว์เซอร์จะแสดง Warning ว่า "Not Secure" ซึ่งเป็นสัญญาณว่าเว็บไซต์ของคุณไม่ปลอดภัย ผู้เยี่ยมชมส่วนใหญ่จะออกจากเว็บไซต์โดยทันที ไม่สนใจเนื้อหาของคุณเลย นอกจากนี้ Google ยังโทษเว็บไซต์ที่มี SSL หมดอายุในการจัดอันดับการค้นหา
ปัญหาทั่วไปที่เกิดขึ้น:
- ลำบากในการจดจำ — ถ้า SSL หมดอายุ ไม่สามารถจดจำวันที่หมดอายุลงในปฏิทิน
- ติดตั้ง AutoSSL ไม่ได้ — Hosting บางแห่งมี AutoSSL แต่ไม่ได้ผลหรือเปิดใช้งานผิด
- โดเมนลืมต่ออายุ — บ่อยครั้งที่โดเมนหมดอายุพร้อมกับ SSL หมดอายุ ทำให้ไม่สามารถต่ออายุ Certificate
วิธีตรวจสอบวันหมดอายุ SSL ของคุณ
ก่อนที่จะตั้งระบบแจ้งเตือน ให้ตรวจสอบว่า SSL Certificate ปัจจุบันของคุณหมดอายุเมื่อไร:
ตรวจสอบผ่าน cPanel
วิธีที่ง่ายที่สุด:
- Login เข้า cPanel ที่ https://yourdomain.com:2083 ด้วยชื่อผู้ใช้และรหัสผ่าน
- มองหาส่วน SSL/TLS หรือ AutoSSL
- ดู Certificate Status — จะแสดงวันที่หมดอายุ (Expiration Date)
- ถ้าเหลือเวลาน้อยกว่า 30 วัน ให้ต่ออายุหรือปรับปรุงแล้ว
ตรวจสอบผ่านเบราว์เซอร์ (ง่ายสำหรับลูกค้า)
ผู้ใช้ทั่วไปสามารถตรวจสอบได้โดย:
- เข้าเว็บไซต์ผ่าน HTTPS (https://yourdomain.com)
- คลิกที่ไอคอน Padlock ที่อยู่ทางซ้ายของ Address Bar
- คลิก "Certificate" หรือ "Valid" ให้เห็นรายละเอียด Certificate
- ดูวันหมดอายุ (Valid until หรือ Expires on)
ระบบแจ้งเตือน SSL ผ่านเครื่องมือฟรี
วิธีที่ 1: ใช้ Expiry Bot ฟรีจาก SSL.com
SSL.com มีบริการเตือน SSL ฟรี ไม่ต้องติดตั้งอะไร:
- ไปที่ https://www.ssl.com/ssl-checker/
- ใส่ URL ของเว็บไซต์คุณ (เช่น https://yourdomain.com)
- ทำเครื่องหมาย "Email notification" เพื่อให้ส่ง Email ก่อน 30 วัน
- ใส่ Email ที่ต้องการรับการแจ้งเตือน
- คลิก Check
SSL.com จะตรวจสอบ Certificate ของคุณและส่ง Email แจ้งเตือน 30 วัน ก่อนหมดอายุ
วิธีที่ 2: ใช้ Cron Job ใน cPanel สำหรับอัตโนมัติ
วิธีนี้ขั้นสูงกว่า แต่คุณเสมือนควบคุมได้เต็มที่:
- สร้างไฟล์ PHP ชื่อ `check-ssl-expiry.php` ในโฟลเดอร์ public_html
- เขียนโค้ด PHP ที่ดึงข้อมูล Certificate และส่ง Email หากเหลือเวลาน้อยกว่า 30 วัน
- ตั้ง Cron Job ใน cPanel ให้รัน Script นี้ทุกวัน
ตัวอย่าง Cron Job ใน cPanel:
0 8 * * * php /home/USERNAME/public_html/check-ssl-expiry.php
หมายความว่า ทุกวันเวลา 8 นาฬิกาเช้า ให้รันไฟล์นี้
วิธีที่ 3: ใช้ AutoSSL ใน cPanel
นี่คือวิธีที่ง่ายและแนะนำที่สุด AutoSSL จะทำการต่ออายุ Certificate โดยอัตโนมัติก่อนหมดอายุ:
- Login เข้า cPanel
- หา AutoSSL หรือ SSL/TLS Status
- ค้นหาโดเมนของคุณ ตรวจสอบว่า AutoSSL เปิดใช้งานแล้ว
- ถ้าไม่ได้เปิด ให้คลิก Enable AutoSSL
- AutoSSL จะตรวจสอบและต่ออายุ Certificate โดยอัตโนมัติ 30 วันก่อนหมดอายุ
การตั้งค่าการแจ้งเตือนผ่าน Email
หากเลือกใช้เครื่องมือฟรี เช่น SSL.com Checker หรือ Cron Job คุณสามารถตั้งค่าผู้รับ Email ได้:
- Email หลัก — ที่อยู่ Email ของเจ้าของเว็บไซต์ ต้องตรวจสอบจดหมายแจ้งเตือนเป็นประจำ
- Email ทีม — ถ้าเว็บไซต์ของคุณมีทีม สามารถส่ง Copy ไปยัง Email ของเจ้าหน้าที่ IT
- Email ตัวเลือก — หลายเครื่องมืออนุญาตให้ตั้งค่า 2-3 Email สำรอง
ตรวจสอบว่าระบบแจ้งเตือนทำงานถูกต้อง
ก่อนพึ่งพาระบบแจ้งเตือน ให้ทดสอบว่าทำงานจริง:
# 1. ตรวจสอบวันหมดอายุ Certificate ผ่าน OpenSSL
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates
# 2. ตรวจสอบกำลังเหลืออีกกี่วัน (สำหรับ Linux/Mac)
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates | grep "notAfter" | date -f - +%s | awk '{print ($1-$(date +%s))/86400}'
# 3. ดู Certificate Info ทั้งหมด
curl -sI https://yourdomain.com | grep -i "strict-transport-security"
# 4. ตรวจสอบ Certificate Chain ว่าเสริมสมบูรณ์
curl -I https://yourdomain.com
# 5. ทดสอบผ่าน ssllabs.com API
curl "https://api.ssllabs.com/api/v3/analyze?host=yourdomain.com"
แก้ปัญหาที่พบบ่อย
Error: "Email แจ้งเตือนไม่เข้า"
ปัญหาทั่วไป:
- Email ตัวรับไม่ถูกต้อง — ตรวจสอบตัวอักษรและที่อยู่ Email ว่าถูกต้อง
- Email ตัวรับ Spam — บ่อยครั้งที่ Email แจ้งเตือน SSL ไป Spam Folder ให้เพิ่มผู้ส่งไปในรายชื่อที่เชื่อถือได้
- Hosting Provider ตั้งค่าไม่ดี — บางแห่งยังไม่เปิด SMTP หรือ Mail Service ให้ติดต่อ Support
Error: "AutoSSL ทำการต่ออายุไม่สำเร็จ"
สาเหตุ:
- โดเมนหมดอายุ — AutoSSL ไม่สามารถต่อ Certificate ถ้าโดเมนหมดอายุแล้ว ต้องต่ออายุโดเมนก่อน
- DNS ไม่ชี้ไปยังเซิร์ฟเวอร์ที่ถูกต้อง — AutoSSL ต้อง Verify Domain ผ่าน DNS หรือ Email หากตั้งค่า DNS ผิด จะ Verify ไม่ได้
- MX Record ผิด — ถ้าใช้วิธี Email Validation ให้ตรวจสอบ MX Record
วิธีแก้: ตรวจสอบ DNS Setting ใน cPanel หรือ DNS Provider ให้ชี้ไปยัง Hosting ของคุณ ถ้ายังไม่ได้ ให้ติดต่อ Hosting Support
Error: "โดเมนหมดอายุพร้อมกับ SSL หมดอายุ"
ถ้าทั้ง SSL Certificate และโดเมน Registration หมดอายุในเวลาเดียวกัน จะต้องต่ออายุโดเมนก่อนจึงจะต่อ SSL ได้ เพราะ Certificate Validation ต้องยืนยันโดเมนนั้นยังหมดอายุหรือไม่
Error: "SSL Certificate ยังไม่ติดตั้ง"
ถ้าเว็บไซต์ยังไม่มี SSL Certificate เลย ไม่มีอะไรให้ต่ออายุ ต้องติดตั้ง SSL ใหม่ก่อน โดย:
- ใช้ AutoSSL ใน cPanel (ฟรี ผ่าน Let's Encrypt)
- ซื้อ SSL Certificate ที่จ่ายเงิน (OV/EV)
Error: "Cron Job ทำการส่ง Email ไม่ได้"
ถ้าตั้ง Cron Job เองแล้วไม่ได้ Email:
- Check PHP Mail Configuration — Hosting บางแห่งปิดการใช้ mail() function ให้ติดต่อ Support ขอให้เปิด
- Check Cron Execution Log — ใน cPanel ดู Cron Job Execution Log เพื่อดูว่า Script รันหรือเกิด Error
- ทดสอบ Script เอง — รัน Script ผ่าน Browser ก่อน (URL: https://yourdomain.com/check-ssl-expiry.php) ดูว่าเกิด Error หรือไม่
คำถามที่พบบ่อย
Q: SSL Certificate หมดอายุกี่วันไปแล้ว เว็บยังเข้าได้หรือไม่?
A: ตั้งแต่วินาที Certificate หมดอายุแล้ว เว็บไซต์จะแสดง Warning "Not Secure" ทันที ผู้เยี่ยมชมยังคงเข้าได้แต่ขึ้น Warning ขนาดใหญ่บอก "Connection is not secure" ดังนั้นต้องต่ออายุทันที
Q: ระหว่างต่ออายุ SSL จะมีเวลาหยุดบริการหรือไม่?
A: ไม่มี Shared Hosting ส่วนใหญ่ใช้ AutoSSL ซึ่งจะออก Certificate ใหม่และโหลดลงบนเซิร์ฟเวอร์โดยไม่หยุดบริการ (Downtime 0) เว็บไซต์ของคุณจะทำงานต่อได้เรื่อย ๆ
Q: SSL Certificate มีหลายใบสำหรับโดเมนเดียวกันได้หรือ?
A: ได้ แต่เบราว์เซอร์จะใช้ Certificate ใบล่าสุดเท่านั้น บ่อยครั้งระหว่างต่ออายุ Certificate ใบเก่าและใบใหม่จะทับซ้อนกัน (Overlap period) สำหรับให้ผู้เยี่ยมชมบางคนยังใช้ Certificate ใบเก่า ระหว่างที่บางคนใช้ใบใหม่ วิธีนี้ป้องกัน Issue ที่อาจเกิดขึ้นระหว่างการเปลี่ยน Certificate