
Let's Encrypt คือ Certificate Authority (CA) ที่ให้ SSL Certificate ฟรีสำหรับทุกโดเมน แต่มีข้อจำกัดสำคัญคือหมดอายุทุก 90 วัน หากไม่ต่ออายุทันเวลา เว็บไซต์จะแสดงคำเตือนความปลอดภัยให้ผู้เข้าชม ส่งผลเสียต่อความน่าเชื่อถือและการจัดอันดับ SEO ทันที บทความนี้จะแนะนำวิธีตั้งค่าต่ออายุอัตโนมัติบน DirectAdmin Hosting ให้ SSL ของคุณไม่หมดอายุอีกเลย
ทำไม Let's Encrypt ถึงหมดอายุบ่อย
Let's Encrypt ออกแบบให้ Certificate มีอายุสั้น 90 วัน เพื่อเป็นแรงจูงใจให้ผู้ใช้ต่ออายุอัตโนมัติ และลดความเสี่ยงจากกรณีที่ Private Key หลุดออกไป การหมดอายุมักเกิดจากสาเหตุต่อไปนี้:
- ตั้งค่า AutoSSL ไม่ถูกต้องตั้งแต่แรก
- Cron Job ที่รัน Certbot ถูกลบหรือหยุดทำงาน
- โดเมนมีปัญหา DNS ทำให้ Validation ล้มเหลว
- ย้าย Hosting แล้วลืมตั้งค่าใหม่
- เซิร์ฟเวอร์ไม่สามารถเข้าถึงได้จากภายนอกช่วง Renewal
วิธี 1 — ใช้ AutoSSL ใน DirectAdmin (แนะนำ)
DirectAdmin มีระบบ AutoSSL ในตัวที่ทำงานร่วมกับ Let's Encrypt โดยตรง เป็นวิธีที่ง่ายและเสถียรที่สุดสำหรับผู้ใช้ Hosting ทั่วไป
ขั้นตอนเปิด AutoSSL
- เข้าสู่ DirectAdmin Panel ของคุณ
- ไปที่เมนู Advanced Features → SSL Certificates
- เลือกโดเมนที่ต้องการ จากนั้นคลิก Free & automatic certificate from Let's Encrypt
- ทำเครื่องหมายที่ Enable SSL และ Force SSL with https redirect
- กด Save
เมื่อเปิด AutoSSL DirectAdmin จะตรวจสอบและต่ออายุ Certificate ก่อนหมดอายุ 30 วันโดยอัตโนมัติ ผ่าน Cron Job ของระบบที่ตั้งค่าไว้แล้ว ไม่ต้องทำอะไรเพิ่มเติม
สำคัญ: AutoSSL ใน DirectAdmin ต้องการให้ DNS Record ของโดเมนชี้มายังเซิร์ฟเวอร์ก่อนเสมอ ถ้า DNS ยังไม่ propagate หรือใช้ Cloudflare Proxy เปิดอยู่ AutoSSL อาจล้มเหลวได้ ให้ปิด Proxy Mode (เปลี่ยนจากสีส้มเป็น DNS Only) ก่อน Renew แล้วค่อยเปิดกลับ
วิธี 2 — ตั้ง Cron Job สำหรับ Certbot
หากคุณใช้ Shared Hosting ที่มี Shell Access หรือต้องการควบคุมกระบวนการด้วยตัวเอง สามารถตั้ง Cron Job สำหรับรัน Certbot ได้ดังนี้:
เพิ่ม Cron Job ใน DirectAdmin
- ไปที่ Advanced Features → Cron Jobs
- ตั้งเวลาเป็น
0 3 * * 1(ทุกวันจันทร์ เวลา 03:00 น.) - ใส่ Command:
/usr/local/bin/certbot renew --quiet --post-hook "systemctl reload apache2" - กด Add
/usr/local/bin/certbot renew --quiet --post-hook "systemctl reload apache2"
Flag --quiet ป้องกันไม่ให้ส่ง Email แจ้งทุกครั้งที่รัน และ --post-hook จะ Reload Apache หลัง Renew สำเร็จเพื่อให้ Certificate ใหม่มีผลทันที
ตรวจสอบสถานะ SSL Certificate
หลังตั้งค่าแล้ว ควรตรวจสอบว่า Certificate ต่ออายุสำเร็จด้วยวิธีต่อไปนี้:
ตรวจผ่าน DirectAdmin
ไปที่ SSL Certificates แล้วดูวันหมดอายุที่แสดงในหน้า หากอัปเดตแล้วจะเห็น Expiry Date ใหม่ห่างออกไป 90 วัน
ตรวจผ่าน OpenSSL Command Line
echo | openssl s_client -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates
ผลลัพธ์จะแสดง notAfter= คือวันหมดอายุ
ใช้เครื่องมือออนไลน์
ไปที่ SSL Server Test ของ AsiaGB พิมพ์โดเมนแล้วตรวจสอบได้ทันที
แก้ปัญหา AutoSSL ล้มเหลว
หาก AutoSSL ล้มเหลว ให้ตรวจสอบตามลำดับนี้:
- DNS propagation — ตรวจว่า A record ชี้มาที่ IP เซิร์ฟเวอร์ถูกต้อง
- Port 80 เปิดอยู่ — Let's Encrypt ใช้ HTTP-01 Challenge ผ่าน Port 80
- Cloudflare Proxy — ปิด Orange Cloud ชั่วคราวแล้วลอง Renew ใหม่
- Rate Limit — Let's Encrypt จำกัด 5 Certificate ต่อโดเมนต่อสัปดาห์ หากลองมากเกินไปจะถูก Block ชั่วคราว
- ดู Error Log — ไปที่ DirectAdmin → Error Log เพื่อดู Message จาก AutoSSL
ตั้งค่าแจ้งเตือนล่วงหน้า
แม้จะตั้ง AutoSSL แล้ว ควรตั้งระบบแจ้งเตือนล่วงหน้าเพื่อความปลอดภัยเพิ่มเติม สามารถใช้บริการ Uptime Robot หรือ StatusCake ที่มี SSL Expiry Monitor ฟรี โดยตั้งแจ้งเตือนที่ 30, 14 และ 7 วันก่อนหมดอายุ จะได้มีเวลาตรวจสอบหาก AutoSSL ผิดปกติ
ความแตกต่างระหว่าง Let's Encrypt กับ SSL แบบเสียเงิน
หลายคนสงสัยว่าควรใช้ Let's Encrypt ฟรีต่อไป หรือควรอัพเกรดเป็น SSL Certificate แบบชำระเงิน คำตอบขึ้นอยู่กับลักษณะของธุรกิจและความต้องการ ดูตารางเปรียบเทียบด้านล่างนี้
| รายการ | Let's Encrypt (ฟรี) | SSL แบบชำระเงิน (DV/OV/EV) |
|---|---|---|
| ราคา | ฟรี | เริ่มต้น 1,000 บาท/ปี |
| อายุ Certificate | 90 วัน (ต้องต่ออายุบ่อย) | 1–2 ปี ขึ้นอยู่กับแผน |
| Wildcard Subdomain | รองรับ (DNS Challenge) | รองรับ (Wildcard SSL) |
| การตรวจสอบองค์กร (OV/EV) | ไม่รองรับ (DV เท่านั้น) | รองรับ OV และ EV |
| การรับประกันความเสียหาย | ไม่มี | มี (ตามแผน) |
| เหมาะกับ | บล็อก, เว็บส่วนตัว, SME | E-Commerce, ธนาคาร, บริษัทใหญ่ |
สำหรับเว็บไซต์ทั่วไปที่ไม่ได้รับชำระเงินออนไลน์โดยตรง Let's Encrypt เพียงพอและประหยัดงบประมาณ แต่หากเป็นเว็บ E-Commerce ขนาดใหญ่หรือต้องการแสดงชื่อองค์กรใน Certificate (OV/EV) SSL แบบชำระเงินคือตัวเลือกที่เหมาะสมกว่า AsiaGB มีทั้ง Let's Encrypt AutoSSL ฟรีและ SSL Certificate แบบชำระเงิน ให้เลือกตามความต้องการ
วิธีจัดการ Let's Encrypt บน Wildcard Subdomain
กรณีที่ต้องการ SSL สำหรับ Subdomain หลายตัว เช่น shop.yourdomain.com, api.yourdomain.com, mail.yourdomain.com สามารถใช้ Let's Encrypt แบบ Wildcard Certificate ซึ่งครอบคลุมทุก Subdomain ด้วยใบเดียว แต่ต้องใช้วิธี DNS-01 Challenge แทน HTTP-01 Challenge
ขั้นตอนออก Wildcard Certificate ด้วย Certbot
certbot certonly \
--manual \
--preferred-challenges=dns \
-d "*.yourdomain.com" \
-d "yourdomain.com"
Certbot จะขอให้คุณเพิ่ม DNS TXT Record ชื่อ _acme-challenge.yourdomain.com ใน DNS Zone ของโดเมน ค่าจะถูกสร้างขึ้นใหม่ทุกครั้งที่ต่ออายุ ดังนั้น Wildcard Certificate มักต้องต่ออายุด้วยมือ หรือใช้ DNS Provider ที่รองรับ Certbot DNS Plugin เช่น Cloudflare หรือ Route53
ข้อจำกัดของ Wildcard Certificate ผ่าน DirectAdmin AutoSSL
- DirectAdmin AutoSSL รองรับ Wildcard ได้บน DirectAdmin เวอร์ชันใหม่ที่ใช้ ACME v2 เท่านั้น
- หากใช้ Shared Hosting ทั่วไป ควรติดต่อ Hosting Provider เพื่อสอบถามการรองรับ
- Wildcard ครอบคลุมเฉพาะ Subdomain ระดับเดียว เช่น
*.yourdomain.comไม่ครอบคลุมsub.shop.yourdomain.com
เคล็ดลับ: หากมี Subdomain จำนวนมากที่ต้องการ SSL แนะนำให้ติดต่อ AsiaGB เพื่อสอบถามแพ็กเกจ Wildcard SSL แบบชำระเงิน ซึ่งต่ออายุปีละครั้งและไม่ต้องการ DNS Challenge ทุก 90 วัน
ความปลอดภัยเพิ่มเติมหลังติดตั้ง SSL สำเร็จ
การได้ SSL Certificate เป็นเพียงจุดเริ่มต้น เพื่อให้ความปลอดภัยของเว็บไซต์สมบูรณ์ยิ่งขึ้น ควรตั้งค่าเพิ่มเติมดังต่อไปนี้หลังจากที่ Let's Encrypt ทำงานได้แล้ว
เปิด HSTS (HTTP Strict Transport Security)
HSTS บอกให้ Browser รู้ว่าเว็บไซต์นี้ต้องใช้ HTTPS เท่านั้น ป้องกัน Downgrade Attack ที่พยายามบังคับให้เชื่อมต่อผ่าน HTTP ธรรมดา เพิ่มบรรทัดนี้ใน .htaccess
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Redirect HTTP ไปยัง HTTPS
แม้ DirectAdmin จะมีตัวเลือก "Force SSL with https redirect" แต่ถ้าต้องการควบคุมเองผ่าน .htaccess ให้เพิ่ม
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ตรวจ SSL Grade ด้วย SSL Labs
หลังติดตั้งและตั้งค่าครบแล้ว ควรทดสอบคะแนน SSL ผ่านเครื่องมือ SSL Server Test เพื่อให้มั่นใจว่าไม่มีช่องโหว่ ผลที่ดีควรได้ Grade A หรือสูงกว่า หากได้ต่ำกว่าให้ตรวจสอบ TLS Version ที่เปิดใช้งาน (ควรปิด TLS 1.0 และ 1.1) และ Cipher Suite ที่ใช้
- ตรวจสอบ TLS Version: ควรเปิดเฉพาะ TLS 1.2 และ 1.3
- ปิด Weak Cipher เช่น RC4, 3DES, EXPORT Cipher
- เปิด OCSP Stapling เพื่อลด Latency ในการตรวจสอบ Certificate
- เพิ่ม
Certificate TransparencyMonitoring เพื่อตรวจจับการออก Certificate ปลอม
เคล็ดลับ: ใช้ SSL Server Test ของ AsiaGB ตรวจสอบสถานะและคะแนน SSL ของเว็บไซต์ได้ทันทีโดยไม่ต้องสมัครสมาชิก เพียงพิมพ์โดเมนแล้วดูผล
การ Migrate Hosting และการตั้ง Let's Encrypt ใหม่
เมื่อย้าย Hosting จากเซิร์ฟเวอร์เก่าไปเซิร์ฟเวอร์ใหม่ Let's Encrypt Certificate ไม่สามารถโอนย้ายไปด้วยได้ เนื่องจากผูกกับ Private Key และไฟล์ต่างๆ บนเซิร์ฟเวอร์เก่า จำเป็นต้องออก Certificate ใหม่บนเซิร์ฟเวอร์ใหม่ทุกครั้ง
ขั้นตอนที่แนะนำเมื่อย้าย Hosting
- ตั้งค่าและทดสอบเว็บไซต์บนเซิร์ฟเวอร์ใหม่ให้เรียบร้อยก่อน (ผ่าน Hosts File หรือ Staging URL)
- เปลี่ยน DNS A Record ชี้ไปยัง IP เซิร์ฟเวอร์ใหม่ และรอให้ Propagate ครบ
- เปิด AutoSSL ใน DirectAdmin ของเซิร์ฟเวอร์ใหม่เพื่อออก Certificate ใหม่ทันที
- ตรวจสอบ Certificate ใหม่ว่าออกสำเร็จก่อนปิดเซิร์ฟเวอร์เก่า
- ตั้ง Cron Job หรือ AutoSSL Reminder บนเซิร์ฟเวอร์ใหม่ให้ครบถ้วน
AsiaGB Hosting ทุกแพ็กเกจรองรับ AutoSSL บน DirectAdmin ทำให้กระบวนการนี้ง่ายมากเพียงไม่กี่คลิก พร้อม Uptime 99% และ Support ภาษาไทยพร้อมช่วยเหลือตลอด 24 ชั่วโมง
Hosting พร้อม Let's Encrypt AutoSSL ฟรี
AsiaGB Hosting SSD รองรับ Let's Encrypt AutoSSL ฟรีทุกแพ็กเกจ เริ่มต้นเพียง 500 บาท/ปี พร้อม DirectAdmin และ Uptime 99%
ดูแพ็กเกจ Hosting