ปัญหา Let’s Encrypt – example.com

เกริ่นนำ

ผมใช้ Server เป็น CyberPanel ซึ่งเป็น Web Hosting Panel ที่มีเครื่องมือครบครันมากๆ
ใช้ openlitespeed/litespeed เป็น server และ config format เหมือน Apache

ปัญหาต่อมาคือ ผมพยายาม issue SSL แต่ดันได้ issuer เป็น example.com และ chrome ก็ไม่ยอม เพราะ domain theproud.co.th ดันมี issuer และ subject เป็น example.com

Chrome จะไม่ให้ผ่านเลย แต่ถ้าอยากผ่านต้อง add cert เข้าเครื่องตัวเอง (ใครจะไปทำ!)

ต้นตอของปัญหา

เอาตรงๆผมก็ยังไม่แน่ใจว่าต้นตอคือตรงไหน ผมตั้งสมมติฐานแยกเป็นสองส่วน

1.ปัญหาที่ SSL
2.ปัญหาที่ DNS

ผมลองค้นหาข้อมูลจาก

https://serverfault.com/questions/1012218/letsencrypt-for-all-subdomains-example-com
https://community.letsencrypt.org/t/everything-to-https-www-example-com/79461
อื่นๆอีกมากมายด้วย keyword “letsencrypt example.com”

ซึ่งคำตอบส่วนใหญ่ชี้ไปทางเดียวกัน คือ NS,CN น่าจะผิด หรือ CyberPanel น่าจะผิด

ผมจึงนั่งดู config DNS และพบว่ามันปกติมากๆ
ผมไม่รู้จะทำอะไรต่อได้ จึงไล่ลบ config DNS, alias ทั้งหมด แต่มันก็ไม่ได้ช่วยอะไร (อย่าทำตาม)

ถ้าไล่อ่านจาก comment เขาก็บอกว่า เครื่องเราตอนส่งไป request ขอ ssl ส่งไปไม่ครบ ให้ลองไปดู config server

ผมพยายามหา config server แต่ก็หาไม่เจอว่า example.com โผล่มาตอนไหน งงจริงๆ

วิธีแก้ปัญหา

ในเมื่อเรากดผ่าน CyberlPanel ไม่เวิค ก็ใช้ command เลยสิ!

// Step 1 Delete+Backup ของเก่า
mv /etc/letsencrypt/live/example.com /etc/letsencrypt/live/example.com_backup
// Step 2 Generate Cert
certbot certonly  --webroot -w /home/example.com/public_html -d example.com -d www.example.com
// Step 3 Check 
openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -text
// CN ควรเป็น example.com
//vHost Conf ควรมีค่าตามนี้
// keyFile /etc/letsencrypt/live/example/privkey.pem
// certFile /etc/letsencrypt/live/example.com/fullchain.pem
// Step 4 Restart Services
systemctl restart lsws

Reference

https://cyberpanel.net/docs/1-manage-dns/
https://cyberpanel.net/docs/3-manually-extending-ssl-to-www/