
ไม่มีอะไรทำลายความน่าเชื่อถือของเว็บได้เร็วเท่าหน้าจอแดงเต็มจอที่เขียนว่า "การเชื่อมต่อของคุณไม่เป็นส่วนตัว" และสาเหตุที่พบบ่อยที่สุดของหน้านั้นคือเรื่องเดียว — SSL Certificate หมดอายุ ข่าวดีคือมันป้องกันได้ง่ายมาก เพียงรู้ว่าใบรับรองเหลืออายุกี่วันและเช็คล่วงหน้าเป็นประจำ
SSL หมดอายุแล้วเกิดอะไรขึ้น
เมื่อ SSL Certificate หมดอายุ เบราว์เซอร์ทุกตัว (Chrome, Safari, Firefox, Edge) จะ หยุดผู้เข้าชมไว้ที่หน้าเตือน ก่อนเข้าเว็บ ผู้ใช้ต้องกดยอมรับความเสี่ยงเองถึงจะเข้าได้ ซึ่งคนส่วนใหญ่จะปิดแท็บแล้วไปเว็บอื่นทันที
- ทราฟฟิกตกทันทีในวันที่ใบรับรองหมด
- ร้านค้าออนไลน์ขายไม่ได้เลยในช่วงที่บล็อก
- Google มองว่าเว็บมีปัญหาความปลอดภัย อาจกระทบ ranking
- API หรือแอปที่เรียกเว็บผ่าน HTTPS จะ error ทั้งหมด
ทำไม SSL ถึงหมดอายุเร็วกว่าที่คิด
อายุของ SSL Certificate สั้นลงเรื่อย ๆ ตามมาตรฐานอุตสาหกรรม ใบรับรองแบบเสียเงินในปัจจุบันออกได้สูงสุดราว 1 ปี ส่วน Let's Encrypt ที่ฟรีและนิยมที่สุดมีอายุเพียง 90 วัน เท่านั้น นั่นหมายความว่าถ้าไม่มีระบบต่ออายุอัตโนมัติ คุณต้องจำวันต่ออายุทุก 3 เดือน
| ประเภท SSL | อายุใบรับรอง | ต่ออายุอัตโนมัติได้ไหม |
|---|---|---|
| Let's Encrypt (ฟรี) | 90 วัน | ได้ — ถ้าตั้ง Certbot / DirectAdmin ไว้ |
| DV SSL (เสียเงิน) | สูงสุด ~1 ปี | ขึ้นกับผู้ให้บริการ |
| OV / EV SSL | สูงสุด ~1 ปี | ต้องต่อด้วยตนเอง + ยืนยันตัวตน |
วิธีเช็ควันหมดอายุ SSL
วิธีที่ 1 — เครื่องมือออนไลน์ (ง่ายที่สุด)
เพียงพิมพ์ชื่อโดเมนลงเครื่องมือตรวจ ระบบจะบอกวันหมดอายุ ผู้ออกใบรับรอง และจำนวนวันที่เหลือ เครื่องมือตรวจสุขภาพโดเมนอย่าง dnsxray.com มีส่วน SSL ที่แสดงสถานะใบรับรองพร้อมกับ DNS, อีเมล และ WHOIS ในการค้นหาเดียว — ตรวจครั้งเดียวเห็นครบ ไม่ต้องเปิดหลายเว็บ
วิธีที่ 2 — ดูจากเบราว์เซอร์
เปิดเว็บแล้วคลิกที่ไอคอนแม่กุญแจหน้า URL → เลือกดูรายละเอียดใบรับรอง (Certificate) จะเห็นช่อง "Valid until" หรือ "หมดอายุ" บอกวันที่ตรง ๆ — เหมาะกับการเช็คเร็ว ๆ ทีละเว็บ
วิธีที่ 3 — คำสั่ง openssl
สำหรับผู้ดูแลระบบที่ต้องการเช็คจาก terminal:
echo | openssl s_client -servername example.com \
-connect example.com:443 2>/dev/null \
| openssl x509 -noout -dates
ผลลัพธ์จะแสดง notBefore และ notAfter — บรรทัด notAfter คือวันหมดอายุ
เข้าใจโครงสร้าง Certificate Chain ก่อนตรวจ
SSL Certificate ที่คุณติดตั้งบนเว็บไม่ได้ "ยืนยันตัวเอง" โดยตรงกับเบราว์เซอร์ — มันต้องพึ่ง ห่วงโซ่ความน่าเชื่อถือ (Certificate Chain) ที่ประกอบด้วย 3 ชั้น ได้แก่ Root CA, Intermediate CA และ End-entity Certificate ของคุณ การเข้าใจโครงสร้างนี้ทำให้รู้ว่าต้องตรวจ "อะไร" เพิ่มนอกจากวันหมดอายุ
| ชั้น | ตัวอย่าง | อายุทั่วไป | ผลถ้าหมดอายุ |
|---|---|---|---|
| Root CA | DigiCert Global Root G2 | 20–30 ปี | เบราว์เซอร์ทั้งหมดไม่เชื่อถือเว็บ |
| Intermediate CA | RapidSSL TLS RSA CA G1 | 5–10 ปี | Chain ขาด — บางอุปกรณ์ error |
| End-entity (ของคุณ) | example.com | 90 วัน – 1 ปี | เว็บถูกบล็อก |
โดยปกติ Root CA และ Intermediate CA มีอายุนานพอที่จะไม่เป็นปัญหา แต่ถ้า Intermediate Certificate หายหรือไม่ได้ติดตั้งครบ เบราว์เซอร์จะแสดงข้อผิดพลาด "incomplete chain" ซึ่งสร้างความสับสนได้มาก เพราะใบรับรองหลักยังไม่หมดอายุแต่เว็บก็ error อยู่ดี เครื่องมือตรวจ SSL อย่าง dnsxray.com จะบอกสถานะของ Chain โดยอัตโนมัติ
ตรวจสอบด้วย curl และ Python สำหรับการ Monitor แบบอัตโนมัติ
หากคุณดูแลเว็บหลายไซต์และต้องการ Monitor SSL แบบอัตโนมัติทุกวัน สามารถเขียน Script เพื่อตรวจหมดอายุได้โดยไม่ต้องเปิด Browser ทีละเว็บ
วิธีที่ 4 — ตรวจด้วย curl (เหมาะกับ Cron Job)
# ตรวจวันหมดอายุพร้อม certificate info
curl -v --head https://example.com 2>&1 | grep "expire date"
# ตรวจแบบสั้น ดูแค่วันหมดอายุ
curl -v --silent --head https://example.com 2>&1 \
| grep "expire date"
วิธีที่ 5 — Python script ตรวจหลายโดเมน
import ssl, socket
from datetime import datetime
def check_ssl(hostname, port=443):
ctx = ssl.create_default_context()
with ctx.wrap_socket(socket.socket(), server_hostname=hostname) as s:
s.settimeout(5)
s.connect((hostname, port))
cert = s.getpeercert()
expires = datetime.strptime(cert['notAfter'], '%b %d %H:%M:%S %Y %Z')
days_left = (expires - datetime.utcnow()).days
return days_left, expires.strftime('%Y-%m-%d')
for domain in ['example.com', 'another-site.com']:
days, date = check_ssl(domain)
status = 'OK' if days > 30 else ('WARNING' if days > 0 else 'EXPIRED')
print(f'{domain}: {status} — expires {date} ({days} days)')
Script นี้รันผ่าน Cron ได้ เช่น ตั้งให้ตรวจทุกวันและส่ง Email แจ้งเตือนถ้าเหลือน้อยกว่า 30 วัน
ความแตกต่างระหว่าง DV, OV และ EV SSL
เมื่อตรวจ SSL ของเว็บ ควรรู้ด้วยว่าเว็บของคุณใช้ใบรับรองระดับไหน เพราะแต่ละระดับมีกระบวนการยืนยันตัวตนและวิธีต่ออายุที่แตกต่างกัน
| ประเภท | ยืนยันอะไร | เวลาออกใบรับรอง | เหมาะกับ |
|---|---|---|---|
| DV (Domain Validation) | เป็นเจ้าของโดเมนจริง | ไม่กี่นาที | เว็บทั่วไป, บล็อก, Startup |
| OV (Organization Validation) | เจ้าของโดเมน + ตัวตนองค์กร | 1–3 วันทำการ | เว็บธุรกิจ, องค์กร |
| EV (Extended Validation) | ยืนยันองค์กรเข้มข้น (ทะเบียนบริษัท) | 3–7 วันทำการ | ธนาคาร, e-Commerce ขนาดใหญ่ |
ในการต่ออายุ DV ทำได้เร็วและง่ายที่สุด แต่ OV และ EV ต้องส่งเอกสารยืนยันตัวตนใหม่ทุกครั้ง จึงต้องเริ่มกระบวนการล่วงหน้าอย่างน้อย 1–2 สัปดาห์ก่อนหมดอายุ
SSL Wildcard และ Multi-Domain SAN คืออะไร ต้องตรวจอย่างไร
เว็บที่มีหลาย Subdomain หรือหลายโดเมนมักใช้ใบรับรองพิเศษสองแบบ ซึ่งต้องตรวจให้ครบทุกโดเมนที่ครอบคลุม
- Wildcard SSL (
*.example.com) — ใบรับรองเดียวครอบคลุม Subdomain ทุกตัว เช่นwww.example.com,shop.example.com,mail.example.comแต่ไม่ครอบคลุมexample.comเปล่าๆ หรือ Sub-subdomain เช่นa.b.example.com - Multi-Domain SAN (Subject Alternative Names) — ใบรับรองที่ระบุโดเมนหลายชื่อแยกต่างหากใน Certificate เช่น
example.com,example.net,mybrand.co.thอยู่ในใบรับรองเดียวกัน
เมื่อตรวจ SSL ควรดูที่ฟิลด์ Subject Alternative Name ใน Certificate Detail เพื่อยืนยันว่าโดเมนและ Subdomain ที่ใช้งานจริงทุกตัวถูกครอบคลุมอยู่ ถ้าเว็บมีทั้ง HTTP และ HTTPS ให้ทดสอบทั้ง 2 version ว่าเปลี่ยนเส้นทางถูกต้อง
ตรวจมากกว่าแค่ "วันหมดอายุ"
SSL ที่ยังไม่หมดอายุไม่ได้แปลว่าไม่มีปัญหา ควรตรวจเพิ่ม 3 จุดนี้ด้วย
- ออกให้ถูกโดเมน — ใบรับรองต้องครอบคลุมชื่อที่ใช้จริง (เช่น มีทั้ง
example.comและwww.example.com) - Certificate chain ครบ — ถ้าขาด intermediate certificate บางอุปกรณ์จะมองว่า SSL ไม่น่าเชื่อถือ
- ยังใช้อัลกอริทึมที่ปลอดภัย — ใบรับรองเก่ามาก ๆ อาจใช้มาตรฐานที่เบราว์เซอร์รุ่นใหม่ไม่รับแล้ว
กฎ 30 วัน: ตั้งเป้าตรวจ SSL ทุกเว็บอย่างน้อยเดือนละครั้ง และลงมือต่ออายุเมื่อเหลือ 30 วันขึ้นไป อย่ารอจนเหลือไม่กี่วัน เพราะการต่ออายุบางแบบ (โดยเฉพาะ OV/EV) ใช้เวลายืนยันตัวตนหลายวัน
ตั้งให้ SSL ต่ออายุเองอัตโนมัติ
วิธีที่ดีที่สุดคือไม่ต้องจำเลย — ใช้ระบบต่ออายุอัตโนมัติ
- Let's Encrypt: ตั้ง Certbot ให้รันผ่าน cron หรือเปิดฟีเจอร์ auto-renew ใน DirectAdmin
- โฮสติ้งที่ดี: มักออกและต่อ Let's Encrypt ให้อัตโนมัติโดยที่ลูกค้าไม่ต้องทำอะไร
- SSL เสียเงิน: ตั้งเตือนในปฏิทินล่วงหน้า 45 วัน เพราะส่วนใหญ่ต่อให้อัตโนมัติไม่ได้
แต่ถึงจะตั้ง auto-renew แล้ว ก็ยังควรเช็คเป็นระยะ เพราะ auto-renew อาจล้มเหลวเงียบ ๆ ได้ (เช่น DNS เปลี่ยน หรือ port 80 ถูกบล็อก)
เช็คให้ติดเป็นนิสัย: เปิด dnsxray.com ตรวจโดเมนของคุณเดือนละครั้ง ดูส่วน SSL ว่าเหลือกี่วัน ถ้าใกล้หมดให้รีบต่อ — และถ้าดูแลหลายเว็บ ใช้ฟีเจอร์ตรวจหลายโดเมนพร้อมกันได้
คำถามที่พบบ่อย
Q: ใช้ Let's Encrypt ฟรี ต้องคอยต่อเองทุก 90 วันไหม
ไม่ ถ้าตั้ง auto-renew ไว้ — โฮสติ้งที่รองรับ DirectAdmin ส่วนใหญ่จะต่อให้อัตโนมัติ คุณแค่ตรวจเป็นระยะว่ามันทำงานจริง
Q: SSL หมดอายุแล้วเว็บหายไปเลยไหม
เว็บยังอยู่ แต่ผู้เข้าชมจะเจอหน้าเตือนก่อน หลายคนจะไม่กดผ่าน เท่ากับสูญเสียทราฟฟิกจริง ๆ จนกว่าจะต่ออายุ
Q: เช็คแล้วเหลือ 10 วัน ควรทำอย่างไร
ถ้าใช้ Let's Encrypt ให้สั่งต่ออายุทันที (มักเสร็จในไม่กี่นาที) ถ้าเป็น SSL เสียเงินให้ติดต่อผู้ให้บริการเร่งด่วน เพราะการยืนยันตัวตนอาจใช้เวลา
Q: AsiaGB จัดการ SSL ให้ไหม
จัดการให้ — AsiaGB Hosting ออก SSL ฟรีและตั้งต่ออายุอัตโนมัติให้ ส่วนลูกค้าที่ต้องการ SSL แบบเสียเงิน (DV/OV/EV) ทีมงานช่วยติดตั้งและแจ้งเตือนก่อนหมดอายุ
สรุป: SSL หมดอายุคือสาเหตุอันดับต้น ๆ ที่ทำให้เว็บถูกบล็อก ป้องกันได้ด้วยการเช็ควันหมดอายุเดือนละครั้ง ต่ออายุเมื่อเหลือ 30 วันขึ้นไป และตั้งระบบ auto-renew ไว้ — แต่ก็ยังต้องเช็คซ้ำเสมอเพราะ auto-renew พังเงียบได้
SSL ฟรี ต่ออายุอัตโนมัติ ทุกแพ็กเกจ
AsiaGB Hosting แถม SSL ฟรีและตั้งต่ออายุอัตโนมัติให้ทุกเว็บ — ไม่ต้องกลัวใบรับรองหมด Hosting SSD เริ่ม 500 บาท/ปี Uptime 99% DirectAdmin
ดูบริการ SSL