บันทึกการแก้ปัญหาต่ออายุ SSL Let’s Encrypt ใน aaPanel บน Localhost

ปํญหานี้เกิดขึ้นได้หาก aaPanel คุณอยูหลัง Firewall หรือ WAF ที่กั้นไม่ได้เข้าถึง port 80, 443 ได้จากภายนอก หรือจาก source ที่เราไม่ได้อนุญาต โดยในขั้นตอนที่ผมทำนี้จะเป็นการแก้ปัญหาที่เกิดกับ domain ภายในองค์กร ที่สร้าง NAT ไว้บน Fortigate เพื่อให้เข้าถึงจากภายนอกได้อย่างจำกัด

หากคุณใช้ aaPanel แล้วพบปัญหาในการต่ออายุ SSL เช่น The CA server was unable to access your website หรือ timeout จาก Let’s Encrypt บทความนี้จะพาคุณแก้ไขอย่างเป็นขั้นตอน พร้อมตรวจสอบ Firewall, .htaccess และการตั้งค่าให้พร้อมก่อนกด “Renew SSL” บน aaPanel อีกครั้ง

ขั้นตอนที่ 1: เปิด Firewall ให้ Let’s Encrypt เข้าถึงเว็บ

  1. ไปที่ FortiGate หรือ firewall ที่คุณใช้งาน
  2. เพิ่ม Policy ดังนี้:
    • From: Internet-Zone
    • To: WEBServer-Zone
    • Service: HTTP (port 80), HTTPS (port 443)
    • Source: ควรตั้งเป็น all ชั่วคราว
    • SSL Inspection: ปิด (ใช้ ssl-disabled)

ขั้นตอนที่ 2: ปิดการ Redirect ไป HTTPS ชั่วคราวใน .htaccess

เพื่อให้ Let’s Encrypt สามารถเข้าถึงไฟล์ยืนยันโดเมนได้ผ่าน HTTP คุณต้องปิดการบังคับให้ redirect ไป HTTPS ชั่วคราว

#RewriteCond %{HTTP_HOST} ^moremeng.in.th [NC]
#RewriteCond %{HTTPS} off
#RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

ขั้นตอนที่ 3: ตรวจสอบว่า Port 80 และ 443 เปิดจากภายนอก

เข้าเว็บไซต์ https://dnschecker.org/port-scanner.php ใส่ domain ที่เราทำการชี้มายัง NAT IP ของ Firewall อาทิเช่น moremeng.in.th แล้วตรวจสอบว่า

  • ✅ Port 80: Open
  • ✅ Port 443: Open

ขั้นตอนที่ 4: ต่ออายุ SSL ใน aaPanel

  1. เข้าสู่ระบบ aaPanel
  2. ไปที่เมนู Website
  3. เลือกเว็บไซต์ → กดที่ปุ่ม SSL
  4. คลิกปุ่ม Renewal SSL

ขั้นตอนที่ 5: เปิด HTTPS Redirect กลับ

เมื่อต่ออายุ SSL สำเร็จแล้ว ให้กลับไปที่ .htaccess แล้วปลดคอมเมนต์

RewriteCond %{HTTP_HOST} ^moremeng.in.th [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

เพื่อบังคับให้ทุกการเข้าถึงเปลี่ยนเป็น HTTPS เพื่อความปลอดภัย

🎉 ผลลัพธ์ที่ควรได้

  • สถานะ SSL: ✅ ต่ออายุสำเร็จ
  • Expired: “Exp in 89 days” (หรือประมาณ 90 วัน)
  • Port 80/443: เปิดใช้งานได้จากภายนอก
  • เว็บไซต์ปลอดภัยด้วย HTTPS แบบอัตโนมัติ

หากคุณดูแลเว็บไซต์บนเซิร์ฟเวอร์เองและใช้ aaPanel บทความนี้จะช่วยให้คุณหลีกเลี่ยงปัญหา SSL Verify Fail ได้ทุกครั้งที่ถึงรอบต่ออายุครับ