ต่ออายุ Let's Encrypt อัตโนมัติบน DirectAdmin

Let's Encrypt คือ Certificate Authority (CA) ที่ให้ SSL Certificate ฟรีสำหรับทุกโดเมน แต่มีข้อจำกัดสำคัญคือหมดอายุทุก 90 วัน หากไม่ต่ออายุทันเวลา เว็บไซต์จะแสดงคำเตือนความปลอดภัยให้ผู้เข้าชม ส่งผลเสียต่อความน่าเชื่อถือและการจัดอันดับ SEO ทันที บทความนี้จะแนะนำวิธีตั้งค่าต่ออายุอัตโนมัติบน DirectAdmin Hosting ให้ SSL ของคุณไม่หมดอายุอีกเลย

ทำไม Let's Encrypt ถึงหมดอายุบ่อย

Let's Encrypt ออกแบบให้ Certificate มีอายุสั้น 90 วัน เพื่อเป็นแรงจูงใจให้ผู้ใช้ต่ออายุอัตโนมัติ และลดความเสี่ยงจากกรณีที่ Private Key หลุดออกไป การหมดอายุมักเกิดจากสาเหตุต่อไปนี้:

วิธี 1 — ใช้ AutoSSL ใน DirectAdmin (แนะนำ)

DirectAdmin มีระบบ AutoSSL ในตัวที่ทำงานร่วมกับ Let's Encrypt โดยตรง เป็นวิธีที่ง่ายและเสถียรที่สุดสำหรับผู้ใช้ Hosting ทั่วไป

ขั้นตอนเปิด AutoSSL

  1. เข้าสู่ DirectAdmin Panel ของคุณ
  2. ไปที่เมนู Advanced Features → SSL Certificates
  3. เลือกโดเมนที่ต้องการ จากนั้นคลิก Free & automatic certificate from Let's Encrypt
  4. ทำเครื่องหมายที่ Enable SSL และ Force SSL with https redirect
  5. กด 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

  1. ไปที่ Advanced Features → Cron Jobs
  2. ตั้งเวลาเป็น 0 3 * * 1 (ทุกวันจันทร์ เวลา 03:00 น.)
  3. ใส่ Command: /usr/local/bin/certbot renew --quiet --post-hook "systemctl reload apache2"
  4. กด 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 ล้มเหลว ให้ตรวจสอบตามลำดับนี้:

ตั้งค่าแจ้งเตือนล่วงหน้า

แม้จะตั้ง 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 บาท/ปี
อายุ Certificate90 วัน (ต้องต่ออายุบ่อย)1–2 ปี ขึ้นอยู่กับแผน
Wildcard Subdomainรองรับ (DNS Challenge)รองรับ (Wildcard SSL)
การตรวจสอบองค์กร (OV/EV)ไม่รองรับ (DV เท่านั้น)รองรับ OV และ EV
การรับประกันความเสียหายไม่มีมี (ตามแผน)
เหมาะกับบล็อก, เว็บส่วนตัว, SMEE-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

เคล็ดลับ: หากมี 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 ที่ใช้

เคล็ดลับ: ใช้ SSL Server Test ของ AsiaGB ตรวจสอบสถานะและคะแนน SSL ของเว็บไซต์ได้ทันทีโดยไม่ต้องสมัครสมาชิก เพียงพิมพ์โดเมนแล้วดูผล

การ Migrate Hosting และการตั้ง Let's Encrypt ใหม่

เมื่อย้าย Hosting จากเซิร์ฟเวอร์เก่าไปเซิร์ฟเวอร์ใหม่ Let's Encrypt Certificate ไม่สามารถโอนย้ายไปด้วยได้ เนื่องจากผูกกับ Private Key และไฟล์ต่างๆ บนเซิร์ฟเวอร์เก่า จำเป็นต้องออก Certificate ใหม่บนเซิร์ฟเวอร์ใหม่ทุกครั้ง

ขั้นตอนที่แนะนำเมื่อย้าย Hosting

  1. ตั้งค่าและทดสอบเว็บไซต์บนเซิร์ฟเวอร์ใหม่ให้เรียบร้อยก่อน (ผ่าน Hosts File หรือ Staging URL)
  2. เปลี่ยน DNS A Record ชี้ไปยัง IP เซิร์ฟเวอร์ใหม่ และรอให้ Propagate ครบ
  3. เปิด AutoSSL ใน DirectAdmin ของเซิร์ฟเวอร์ใหม่เพื่อออก Certificate ใหม่ทันที
  4. ตรวจสอบ Certificate ใหม่ว่าออกสำเร็จก่อนปิดเซิร์ฟเวอร์เก่า
  5. ตั้ง 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