
SSL Certificate มีอายุการใช้งานจำกัด เมื่อหมดอายุแล้วเว็บไซต์จะแสดงคำเตือน "ไม่ปลอดภัย" และผู้เยี่ยมชมอาจไม่กล้าเข้าถึง การต่ออายุ SSL ในเวลาที่เหมาะสมจึงสำคัญมาก บทความนี้ครอบคลุมทั้ง Let's Encrypt และ Paid SSL Certificate พร้อมวิธีแก้ปัญหาเมื่อเกิดข้อผิดพลาด
ตรวจสอบวันหมดอายุ SSL
ก่อนต่ออายุ ควรทราบว่า SSL หมดอายุเมื่อไหร่ มีหลายวิธีตรวจสอบ:
ผ่านเบราว์เซอร์
คลิกที่ไอคอนแม่กุญแจในแถบที่อยู่ → Certificate → ดู "Valid to" หรือ "Expires on"
ผ่าน OpenSSL Command Line
openssl s_client -connect yourdomain.com:443 2>/dev/null | \
openssl x509 -noout -dates
ผ่าน Online Tool
ใช้ AsiaGB SSL Server Test ที่ asiagb.com/ssl-checker.html กรอกโดเมนแล้วดูวันหมดอายุได้ทันที
แนะนำ: ควรต่ออายุ SSL ก่อนหมดอายุอย่างน้อย 30 วัน เพื่อให้มีเวลาเพียงพอหากเกิดปัญหา สำหรับ Paid SSL ควรเริ่มกระบวนการ 45-60 วันก่อนหมด
ต่ออายุ Let's Encrypt
Let's Encrypt มีอายุ 90 วัน แต่ถ้าใช้กับ AsiaGB Hosting จะต่ออายุอัตโนมัติผ่าน DirectAdmin ไม่ต้องทำเอง
ต่ออายุอัตโนมัติบน Shared Hosting (DirectAdmin)
AsiaGB Hosting ตั้งค่า Auto-Renew ให้ Let's Encrypt อัตโนมัติ ระบบจะต่ออายุทุก 60-75 วัน (ก่อนหมด 15-30 วัน) โดยไม่ต้องทำอะไร ตรวจสอบสถานะได้ใน DirectAdmin → SSL Certificates
ต่ออายุด้วย Certbot (VPS / Dedicated Server)
# ตรวจสอบ certificates ที่กำลังจะหมดอายุ
sudo certbot renew --dry-run
# ต่ออายุจริง
sudo certbot renew
# ต่ออายุ domain เฉพาะ
sudo certbot renew --cert-name yourdomain.com
ตั้ง Cron Job ต่ออายุอัตโนมัติ
# เพิ่มใน crontab -e (รันทุกวันที่ 1 เวลา 03:00)
0 3 1 * * /usr/bin/certbot renew --quiet && systemctl reload nginx
ต่ออายุ Paid SSL (RapidSSL, GeoTrust)
Paid SSL มีอายุ 1 ปี กระบวนการต่ออายุมีขั้นตอนดังนี้:
ขั้นที่ 1: สั่งซื้อต่ออายุ
เข้าสู่ระบบที่ billing.in.th → บริการของฉัน → เลือก SSL Certificate → สั่งต่ออายุ หรือรอรับอีเมลแจ้งเตือนจาก AsiaGB ก่อน SSL หมดอายุ 60 วัน
ขั้นที่ 2: สร้าง CSR ใหม่
สร้าง CSR ใหม่บนเซิร์ฟเวอร์ (ดูวิธีที่บทความ สร้าง CSR ทีละขั้นตอน) และนำ CSR ใหม่ไปใช้ในขั้นตอนต่ออายุ — ไม่ควรใช้ CSR เก่าซ้ำ
ขั้นที่ 3: ยืนยัน Domain (Domain Validation)
CA จะส่งอีเมลยืนยันไปยัง [email protected] หรือ [email protected] ให้คลิกลิงก์ยืนยัน (สำหรับ DV SSL)
ขั้นที่ 4: ดาวน์โหลดและติดตั้ง Certificate ใหม่
หลังได้รับ Certificate ใหม่ ให้ติดตั้งบนเซิร์ฟเวอร์ทดแทนอันเก่า แล้ว Reload เว็บเซิร์ฟเวอร์:
# Apache
sudo systemctl reload apache2
# Nginx
sudo nginx -t && sudo systemctl reload nginx
แก้ปัญหา SSL หมดอายุแล้ว
ถ้า SSL หมดอายุไปแล้วและเว็บขึ้นคำเตือน "Your connection is not private" ให้ทำดังนี้:
- Let's Encrypt หมดอายุ — รัน
certbot renew --force-renewalหรือในกรณี Hosting ให้ติดต่อ AsiaGB Support เพื่อ Force Renew - Paid SSL หมดอายุ — ต้องสั่งซื้อและติดตั้ง Certificate ใหม่ทั้งหมด ไม่สามารถ "ต่ออายุ" หลังหมดแล้วได้ในทางเทคนิค
- ติดตั้งชั่วคราว — ถ้ารอ Certificate ใหม่อยู่ สามารถติดตั้ง Let's Encrypt ชั่วคราวก่อนได้
ตรวจสอบหลังต่ออายุ
หลังต่ออายุและติดตั้งเสร็จแล้ว ตรวจสอบดังนี้:
- เปิดเว็บในโหมด Incognito เพื่อไม่ให้ Cache รบกวน
- ตรวจสอบวันหมดอายุใหม่ผ่าน SSL Checker
- ตรวจสอบ Chain Certificate ว่าสมบูรณ์ด้วย
openssl verify -CAfile ca-bundle.crt certificate.crt - ทดสอบ HTTPS บนมือถือด้วย
วิธีตั้งค่าการแจ้งเตือนล่วงหน้าก่อน SSL หมดอายุ
การรู้ล่วงหน้าว่า SSL จะหมดอายุเมื่อไหร่ช่วยให้มีเวลาเตรียมการต่ออายุได้อย่างสบาย ไม่ต้องรีบทำในนาทีสุดท้าย มีหลายวิธีตั้งการแจ้งเตือน:
แจ้งเตือนผ่าน Email ของ CA
Certificate Authority (CA) เช่น DigiCert (ผู้ออก RapidSSL และ GeoTrust) จะส่งอีเมลแจ้งเตือนไปยังที่อยู่อีเมลที่ลงทะเบียนไว้ โดยปกติจะแจ้ง 90, 60 และ 30 วันก่อนหมดอายุ ควรตรวจสอบว่าอีเมลที่ลงทะเบียนยังใช้งานได้อยู่เสมอ
ตั้ง Calendar Reminder
หลังต่ออายุสำเร็จให้บันทึกวันหมดอายุใหม่ลงใน Google Calendar หรือ Outlook Calendar พร้อมตั้ง Reminder ล่วงหน้า 60 วัน วิธีนี้ง่ายและมั่นใจได้ว่าจะไม่พลาด
ใช้ Monitoring Tool
มีเครื่องมือ Monitor SSL อัตโนมัติ เช่น UptimeRobot ที่สามารถตรวจสอบวันหมดอายุ SSL และส่งอีเมลแจ้งเตือนได้ฟรี หรือใช้ AsiaGB SSL Checker สแกนก่อนหมดเวลาอยู่เสมอ
Script แจ้งเตือนอัตโนมัติบน VPS
ถ้ามีการจัดการ SSL บน VPS สามารถตั้ง Script ส่งอีเมลแจ้งเตือนก่อนหมดได้ดังนี้:
#!/bin/bash
# ssl-check.sh — แจ้งเตือนเมื่อ SSL เหลือน้อยกว่า 30 วัน
DOMAIN="yourdomain.com"
DAYS_BEFORE=30
EXPIRY=$(openssl s_client -connect "$DOMAIN:443" -servername "$DOMAIN" 2>/dev/null \
| openssl x509 -noout -enddate | cut -d= -f2)
EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s)
NOW_EPOCH=$(date +%s)
DIFF_DAYS=$(( (EXPIRY_EPOCH - NOW_EPOCH) / 86400 ))
if [ "$DIFF_DAYS" -lt "$DAYS_BEFORE" ]; then
echo "SSL for $DOMAIN expires in $DIFF_DAYS days!" | mail -s "SSL Alert" [email protected]
fi
เปรียบเทียบ SSL Certificate แต่ละประเภทสำหรับการต่ออายุ
เมื่อถึงเวลาต่ออายุ SSL ควรประเมินว่ายังต้องการ Certificate ประเภทเดิมอยู่หรือไม่ หรือธุรกิจเติบโตจนต้องการระดับที่สูงขึ้น
| ประเภท SSL | อายุ | ราคาเริ่มต้น | เหมาะกับ |
|---|---|---|---|
| Let's Encrypt (DV) | 90 วัน | ฟรี | เว็บส่วนตัว, Portfolio |
| RapidSSL (DV Paid) | 1 ปี | 1,000 บาท/ปี | เว็บธุรกิจ SME |
| RapidSSL Wildcard | 1 ปี | 5,000 บาท/ปี | หลาย Subdomain |
| GeoTrust True BusinessID (OV) | 1 ปี | 4,000 บาท/ปี | ธุรกิจที่ต้องการ Trust สูง |
| GeoTrust True BusinessID with EV | 1 ปี | 7,000 บาท/ปี | E-Commerce, ธนาคาร |
ถ้าปัจจุบันใช้ Let's Encrypt และต้องการความน่าเชื่อถือที่สูงขึ้นสำหรับลูกค้า การอัพเกรดเป็น Paid SSL เช่น RapidSSL (1,000 บาท/ปี) ในรอบต่ออายุถัดไปเป็นการลงทุนที่คุ้มค่า
ปัญหาที่พบบ่อยเมื่อต่ออายุ SSL และวิธีแก้ไข
แม้กระบวนการต่ออายุ SSL จะไม่ซับซ้อน แต่ก็อาจพบปัญหาบางอย่างที่ทำให้ล่าช้า ต่อไปนี้คือปัญหาที่พบบ่อยและวิธีแก้ไข:
ปัญหา: ได้รับอีเมลยืนยัน DV แต่กดลิงก์แล้วหมดเวลา
ลิงก์ยืนยัน DV SSL มักมีอายุ 24-72 ชั่วโมง ถ้าหมดเวลาให้ขอ Resend Validation Email ผ่านระบบของ CA หรือแจ้ง AsiaGB Support เพื่อขอ Resend
ปัญหา: Certificate ใหม่ติดตั้งแล้วแต่เบราว์เซอร์ยังแสดง Certificate เก่า
เกิดจาก Browser Cache หรือ CDN Cache ให้ลอง Hard Refresh (Ctrl+Shift+R) หรือเปิดในโหมด Incognito ถ้าใช้ Cloudflare ให้ Purge Cache จาก Cloudflare Dashboard ด้วย
ปัญหา: Mixed Content Warning หลังเปลี่ยน SSL
เกิดเมื่อหน้าเว็บโหลด Resource บางส่วนผ่าน HTTP แทน HTTPS ให้ค้นหาลิงก์ที่ขึ้นต้นด้วย http:// ใน Source Code ของหน้าเว็บและเปลี่ยนเป็น https:// หรือ // ทั้งหมด
ปัญหา: Certbot ต่ออายุไม่ได้ ขึ้น Error "Too many certificates already issued"
Let's Encrypt จำกัด 5 Certificate ต่อโดเมนต่อสัปดาห์ ถ้าพบ Error นี้ให้รอ 7 วันแล้วลองใหม่ หรือใช้ --staging flag สำหรับทดสอบก่อน
SSL Certificate กับ SEO: ทำไมต้องต่ออายุก่อนหมด
หลายคนมองว่า SSL เป็นแค่เรื่องความปลอดภัย แต่ความจริง SSL ส่งผลโดยตรงต่อ SEO และ Traffic ของเว็บไซต์ด้วย การปล่อยให้ SSL หมดอายุโดยไม่ต่ออายุมีผลเสียหลายอย่าง
Google ใช้ HTTPS เป็น Ranking Signal
ตั้งแต่ปี 2014 Google ประกาศให้ HTTPS เป็นหนึ่งในปัจจัยการจัดอันดับ (Ranking Signal) แม้น้ำหนักจะไม่มากนัก แต่เว็บที่ใช้ HTTPS มีโอกาสติดอันดับที่ดีกว่าเว็บ HTTP ที่เนื้อหาเหมือนกัน ถ้า SSL หมดอายุและไม่ได้ต่ออายุทันที เว็บจะถูก Downgrade ส่งผลต่ออันดับการค้นหา
Browser Warning ทำให้ Bounce Rate พุ่งสูง
เมื่อ SSL หมดอายุ เบราว์เซอร์จะขึ้นหน้าเตือน "Your connection is not private" หรือ "ไม่ปลอดภัย" ก่อนที่ผู้เยี่ยมชมจะเข้าถึงเว็บ ผู้ใช้ส่วนใหญ่จะกดออกทันที ทำให้ Bounce Rate สูงขึ้นอย่างมากและส่งสัญญาณลบไปยัง Google ว่าเว็บนี้ไม่น่าเชื่อถือ
E-Commerce ได้รับผลกระทบสูงสุด
ถ้าเว็บไซต์มีระบบชำระเงินออนไลน์ การที่ SSL หมดอายุแม้เพียงชั่วคราวอาจทำให้ลูกค้าไม่กล้ากรอกข้อมูลบัตรเครดิตหรือชำระเงิน ส่งผลให้ยอดขายตกอย่างฉับพลัน ในกรณีนี้การต่ออายุ SSL ก่อนหมดไม่ใช่ตัวเลือก แต่คือสิ่งจำเป็น
ผลต่อ Email Deliverability
โดเมนที่ SSL หมดอายุอาจส่งผลต่อ Email Reputation ด้วย เซิร์ฟเวอร์อีเมลปลายทางบางตัวตรวจสอบสถานะ HTTPS ของโดเมนก่อนรับอีเมล ถ้าโดเมนแสดงว่าไม่ปลอดภัยอาจทำให้อีเมลถูก Mark เป็น Spam มากขึ้น
สรุป: การต่ออายุ SSL ก่อนหมดอายุอย่างน้อย 30 วัน คือการปกป้องทั้งความปลอดภัยของผู้ใช้งาน อันดับ SEO และรายได้ของธุรกิจ ไม่ใช่แค่งาน Admin ทั่วไป AsiaGB แจ้งเตือนลูกค้าล่วงหน้า 60 วันพร้อมทีมซัพพอร์ตไทยช่วยเหลือตลอดกระบวนการ
ต่ออายุ SSL Certificate กับ AsiaGB
Paid SSL เริ่ม 1,000 บาท/ปี พร้อมการแจ้งเตือนล่วงหน้า 60 วัน และทีมซัพพอร์ตไทยช่วยติดตั้ง
ดู SSL Certificate