คู่มือการสร้างและแก้ปัญหา SSL Let's Encrypt บน Plesk Hosting
เอกสารนี้ใช้สำหรับผู้ดูแลเซิร์ฟเวอร์ Plesk เพื่อสร้าง SSL ให้ทุกโดเมน และแก้ปัญหา SSL หมดอายุ เหมาะสำหรับระบบ Shared Hosting
1. สาเหตุที่ SSL หมดอายุพร้อมกันหลายโดเมน
- Admin Email ของ Plesk ไม่ได้ตั้งค่า
- Let's Encrypt Extension มีปัญหา
- Cron Job ของ Plesk ไม่ทำงาน
- DNS ของโดเมนไม่ถูกต้อง
- Server ไม่สามารถติดต่อ Let's Encrypt ได้
2. ตรวจสอบ Cron ของ Plesk
ตรวจสอบ Cron
ls /etc/cron.daily/
ควรมีไฟล์
50plesk-daily
ไฟล์นี้ทำหน้าที่
- ต่ออายุ SSL อัตโนมัติ
- ประมวลผลสถิติ
- จัดการ log
- maintenance ของ Plesk
3. ทดสอบรัน Task ของ Plesk
plesk daily
หากคำสั่งนี้รันได้โดยไม่มี error แสดงว่า cron ของ Plesk ทำงานปกติ
4. กรณีไม่พบไฟล์ 50plesk-daily
ให้ซ่อมระบบ Plesk
plesk repair installation
หลังจากซ่อมแล้วตรวจสอบอีกครั้ง
ls /etc/cron.daily/
5. ตรวจสอบ Admin Email ของ Plesk
plesk bin admin --info
ถ้าไม่มี email ให้ตั้งค่า
plesk bin admin --update -email support@nakhonitech.com
ถ้า Admin Email ว่าง Let's Encrypt จะสร้าง SSL ไม่ได้
6. ตรวจสอบ Let's Encrypt Extension
plesk bin extension -l | grep letsencrypt
หากไม่มี extension ให้ติดตั้ง
plesk bin extension --install letsencrypt
7. ตรวจสอบ DNS ของโดเมน
dig example.com +short
หรือ
host example.com
ต้องได้ IP ของเซิร์ฟเวอร์
หาก DNS ไม่ถูกต้อง Let's Encrypt จะออก SSL ไม่ได้
8. ตรวจสอบรายการโดเมนทั้งหมด
plesk bin domain -l
ตัวอย่าง
example.com
examplehosting.net
exampledomain.org
9. ตรวจสอบ Subdomain
plesk bin subdomain -l
ตัวอย่าง
blog.example.com
shop.example.com
portal.example.com
10. สคริปต์สร้าง SSL สำหรับทุกโดเมน
for d in $(plesk bin domain -l); do
plesk bin extension --exec letsencrypt cli.php \
-d "$d" \
-d "www.$d" \
-m support@nakhonitech.com
done
อธิบาย
- -d "$d" สร้าง SSL สำหรับ domain
- -d "www.$d" สร้าง SSL สำหรับ www
- -m email สำหรับ Let's Encrypt
11. สคริปต์สร้าง SSL สำหรับ Subdomain
for s in $(plesk bin subdomain -l); do
plesk bin extension --exec letsencrypt cli.php \
-d "$s" \
-m support@nakhonitech.com
done
Subdomain ส่วนใหญ่ไม่มี www ดังนั้นไม่ควรสร้าง www.sub.domain.com
12. ตัวอย่าง SSL ที่ได้
Domain
example.com
www.example.com
Subdomain
blog.example.com
shop.example.com
portal.example.com
13. ตัวอย่าง Error ที่พบบ่อย
DNS problem: NXDOMAIN looking up A for www.blog.example.com
สาเหตุ
- DNS ไม่มี record www.blog.example.com
วิธีแก้
- อย่าสร้าง www สำหรับ subdomain
14. ตรวจสอบ SSL หลังสร้าง
openssl s_client -connect example.com:443 | openssl x509 -noout -dates
หรือ
curl -I https://example.com
15. ตรวจสอบ Log เมื่อ SSL สร้างไม่ได้
tail -f /var/log/plesk/panel.log
16. เมนู SSL It! ใน Plesk
เข้า
Tools & Settings
SSL It!
เปิด
- Keep websites secured
- Redirect HTTP to HTTPS
ระบบจะ
- สร้าง SSL อัตโนมัติ
- ต่ออายุ SSL อัตโนมัติ
- Redirect HTTPS
17. ข้อแนะนำสำหรับ Shared Hosting
ไม่ควรใช้ Wildcard SSL ทุกโดเมน เพราะ
- ต้องใช้ DNS challenge
- ต้องเพิ่ม TXT record
- automation ยุ่งยาก
Hosting ส่วนใหญ่ใช้
example.com
www.example.com
sub.example.com
ซึ่งเสถียรกว่า
18. สรุป
- ตรวจ cron 50plesk-daily
- ตรวจ admin email
- ตรวจ letsencrypt extension
- ตรวจ DNS
- ใช้ script สร้าง SSL สำหรับ domain และ subdomain
- ตรวจ log เมื่อเกิด error
เอกสารนี้เหมาะสำหรับใช้เป็น Knowledgebase ของ Hosting Server ที่ใช้ Plesk