
เมื่อ SSL Certificate มีปัญหา เบราว์เซอร์จะขึ้นหน้าเตือนสีแดงเต็มจอ ซึ่งทำให้ผู้เยี่ยมชมส่วนใหญ่กดออกทันทีโดยไม่เข้าเว็บ ปัญหา SSL จึงกระทบทั้งความน่าเชื่อถือและยอดผู้เข้าชมโดยตรง ข่าวดีคือ Error แต่ละแบบมีสาเหตุที่ระบุได้ชัดเจน บทความนี้ไล่ปัญหา SSL ที่พบบ่อยทีละกรณี พร้อมวิธีแก้และเครื่องมือตรวจสอบ
ERR_SSL_PROTOCOL_ERROR
สาเหตุ: Browser ไม่สามารถสร้าง SSL Handshake กับ Server ได้
วิธีแก้:
- ตรวจสอบว่า SSL Certificate ติดตั้งถูกต้องใน DirectAdmin
- ล้าง Browser Cache และ SSL State (Chrome: Settings → Privacy → Clear browsing data)
- ตรวจสอบว่า TLS Version ของ Server รองรับ TLS 1.2 หรือ 1.3
- หากใช้ Cloudflare ตรวจสอบ SSL Mode ให้เป็น Full หรือ Full (Strict)
NET::ERR_CERT_DATE_INVALID (Certificate หมดอายุ)
สาเหตุ: SSL Certificate หมดอายุแล้ว
วิธีแก้:
- ต่ออายุ SSL Certificate ผ่าน AsiaGB Billing
- สำหรับ Let's Encrypt: ต่ออายุใน DirectAdmin → SSL Certificates → Let's Encrypt
- ตั้ง Auto-Renew เพื่อป้องกันปัญหานี้ในอนาคต
NET::ERR_CERT_COMMON_NAME_INVALID
สาเหตุ: Certificate ไม่ตรงกับ Domain ที่ใช้งาน
วิธีแก้:
- ตรวจสอบว่า Certificate ออกให้ Domain ที่ถูกต้อง
- หากใช้ www. ตรวจสอบว่า Certificate ครอบคลุม ทั้ง yourdomain.com และ www.yourdomain.com
- Wildcard Certificate จะครอบคลุมเฉพาะ *.yourdomain.com ไม่รวม yourdomain.com
SSL_ERROR_RX_RECORD_TOO_LONG
สาเหตุ: Server ส่ง HTTP Response แทน HTTPS มักเกิดจาก Apache ฟัง Port 443 แต่ส่ง HTTP
วิธีแก้: ตรวจสอบ Apache Virtual Host Config และ SSL Module ว่า Enable อยู่
Incomplete Certificate Chain
บางครั้ง SSL ทำงานบน Chrome แต่ Error บน Firefox หรือมือถือ เกิดจาก Intermediate Certificate ไม่ครบ
ตรวจสอบที่ ssllabs.com/ssltest แล้วดู Certificate Chain ว่าสมบูรณ์หรือไม่
เครื่องมือ Diagnose SSL
- SSL Labs Test: ssllabs.com/ssltest — ตรวจสอบ Certificate Chain, Protocol, Grade
- Why No Padlock: whynopadlock.com — หา Mixed Content
- DNS Checker: dnschecker.org — ตรวจ DNS Propagation
เคล็ดลับ: เมื่อเจอปัญหา SSL ให้เปิด Browser แบบ Incognito ก่อน เพราะ SSL Error บางอย่างเกิดจาก Cached Certificate ในเครื่องผู้ใช้ ไม่ใช่ปัญหาจาก Server
ตารางปัญหา SSL ที่พบบ่อย สาเหตุ และวิธีแก้
ก่อนจะลงลึกในแต่ละกรณี ตารางด้านล่างสรุปข้อความ Error ของ SSL ที่พบบ่อยที่สุดบนเบราว์เซอร์ พร้อมสาเหตุที่แท้จริงและแนวทางแก้ไขแบบรวบรัด เมื่อเจอหน้าจอเตือนสีแดง ให้จดข้อความ Error ที่ปรากฏ (เช่น โค้ดที่ขึ้นต้นด้วย NET::ERR_CERT_) แล้วเทียบกับตารางนี้ก่อน จะช่วยให้ระบุทิศทางการแก้ได้เร็วขึ้นมาก โดยไม่ต้องลองผิดลองถูกทีละอย่าง:
| ข้อความ Error | สาเหตุ | วิธีแก้ |
|---|---|---|
NET::ERR_CERT_DATE_INVALID |
ใบรับรองหมดอายุ หรือนาฬิกาในเครื่องผู้ใช้ตั้งวันที่ผิด | ต่ออายุใบรับรอง และเปิด Auto-Renew; ถ้าเครื่องเดียวที่เจอ ให้ตั้งวันเวลาในเครื่องให้ถูกต้อง |
NET::ERR_CERT_COMMON_NAME_INVALID |
ชื่อโดเมนในใบรับรองไม่ตรงกับโดเมนที่เปิด (name mismatch) | ออกใบรับรองที่ครอบคลุมทั้ง root และ www; ตรวจ SAN ให้ตรงกับโดเมนที่ใช้งานจริง |
NET::ERR_CERT_AUTHORITY_INVALID |
Certificate Chain ไม่ครบ (ขาด Intermediate) หรือใบ self-signed | ติดตั้งใบรับรองใหม่พร้อม CA Bundle เต็ม; ถ้าทดสอบภายในให้ใช้ใบจาก CA จริง |
ERR_SSL_PROTOCOL_ERROR |
Handshake ล้มเหลว เช่น TLS version ไม่ตรง หรือ SSL Mode ผิดที่ Cloudflare | เปิด TLS 1.2/1.3 ที่เซิร์ฟเวอร์; ตั้ง Cloudflare SSL เป็น Full (Strict) |
SSL_ERROR_RX_RECORD_TOO_LONG |
เซิร์ฟเวอร์ส่ง HTTP ออกทาง Port 443 แทน HTTPS | ตรวจ Virtual Host ให้เปิด SSL Module และฟัง Port 443 ด้วย directive SSL ครบ |
| Incomplete Chain (เตือนเฉพาะบางเบราว์เซอร์) | Intermediate Certificate ไม่ครบ บางเบราว์เซอร์เติม chain เองไม่ได้ | ติดตั้ง CA Bundle เต็ม ตรวจซ้ำที่ SSL Labs ว่า chain สมบูรณ์ |
| Mixed Content (กุญแจไม่ขึ้น/ขีดทับ) | หน้า HTTPS โหลด resource (รูป, JS, CSS) ผ่าน HTTP | เปลี่ยน asset ทั้งหมดเป็น HTTPS หรือ relative URL; ตรวจด้วย whynopadlock.com |
หากเจอ Error ที่ไม่อยู่ในตารางนี้ ให้คัดลอกข้อความเต็มไปค้นหา เพราะเบราว์เซอร์แต่ละค่ายตั้งชื่อ Error ต่างกันแม้สาเหตุเดียวกัน เช่น Firefox จะใช้คำว่า SEC_ERROR_UNKNOWN_ISSUER ในกรณีเดียวกับ NET::ERR_CERT_AUTHORITY_INVALID ของ Chrome ทั้งคู่หมายถึง Chain ไม่ครบเหมือนกัน
ตรวจสอบ SSL ด้วยเครื่องมือ (openssl s_client, SSL Labs, browser)
การวินิจฉัยปัญหา SSL ที่แม่นยำต้องเริ่มจากการ "มองเห็น" สิ่งที่เซิร์ฟเวอร์ส่งออกมาจริง ๆ ไม่ใช่เดาจากข้อความ Error อย่างเดียว เครื่องมือสามกลุ่มต่อไปนี้ครอบคลุมการตรวจสอบเกือบทุกกรณี ตั้งแต่ระดับ command line ไปจนถึงรายงานแบบเห็นภาพ:
1. openssl s_client — ตรวจจากเครื่องโดยตรง
คำสั่ง openssl s_client เชื่อมต่อไปยังเซิร์ฟเวอร์แล้วแสดง chain ทั้งหมดที่ได้รับ เหมาะสำหรับเช็คว่า Intermediate ครบหรือไม่โดยไม่ต้องพึ่งเว็บภายนอก:
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
ดูที่ส่วน Certificate chain ถ้ามีเฉพาะใบของโดเมน (depth 0) แต่ไม่มี Intermediate (depth 1) แสดงว่า chain ไม่ครบ และให้สังเกตบรรทัด Verify return code — ถ้าได้ 0 (ok) คือใช้ได้ ส่วนตรวจวันหมดอายุใช้คำสั่งนี้:
echo | openssl s_client -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -dates
2. SSL Labs — รายงานเกรดแบบเห็นภาพ
เปิด ssllabs.com/ssltest แล้วกรอกโดเมน ระบบจะให้เกรด A ถึง F พร้อมระบุชัดว่า chain สมบูรณ์ไหม รองรับ TLS version ใด และมีช่องโหว่ที่รู้จักหรือไม่ เหมาะกับการยืนยันผลหลังแก้ไข และส่งให้ลูกค้า/ทีมงานดูเป็นหลักฐาน
3. Developer Tools ในเบราว์เซอร์
กด F12 เปิด DevTools ไปที่แท็บ Security (Chrome) จะเห็นสถานะใบรับรองและรายการ resource ที่ไม่ปลอดภัย ส่วนแท็บ Console จะแจ้ง Mixed Content ทุกรายการพร้อม URL ที่ยังเป็น HTTP ทำให้ไล่แก้ได้ตรงจุด
แก้ certificate chain ไม่ครบ (intermediate/CA bundle)
ปัญหา chain ไม่ครบเป็นสาเหตุอันดับต้น ๆ ที่ทำให้ "เปิดได้บน Chrome แต่ Error บนมือถือหรือ Firefox" เพราะเบราว์เซอร์เดสก์ท็อปบางตัวมีความสามารถ AIA fetching ดึง Intermediate มาเติมเองได้ แต่มือถือและไลบรารีฝั่ง API ส่วนใหญ่ทำไม่ได้ จึงมองว่าใบรับรองไม่น่าเชื่อถือ การแก้ที่ถูกต้องคือทำให้เซิร์ฟเวอร์ส่ง chain ครบเองตั้งแต่แรก
โครงสร้าง chain ที่สมบูรณ์ต้องเรียงจากใบของโดเมน (Leaf) ตามด้วย Intermediate ของ CA และไม่จำเป็นต้องใส่ Root (เพราะ Root อยู่ใน trust store ของเครื่องผู้ใช้อยู่แล้ว) ขั้นตอนแก้:
- ขอไฟล์ Intermediate / CA Bundle จากผู้ออกใบรับรอง (RapidSSL, GeoTrust, DigiCert มักให้มาพร้อมใบรับรอง)
- ใน DirectAdmin ไปที่ SSL Certificates แล้ววางเนื้อหา CA Bundle ในช่อง CA Root Certificate ให้ครบ
- หากตั้งค่าระดับไฟล์ Apache ให้ระบุ
SSLCertificateChainFileชี้ไปยังไฟล์ bundle หรือต่อ Intermediate ต่อท้ายใบรับรองในไฟล์.crt - รีสตาร์ทเว็บเซิร์ฟเวอร์ แล้วยืนยันด้วย
openssl s_clientหรือ SSL Labs ว่าขึ้นครบทุกชั้น
สำหรับใบ Let's Encrypt เครื่องมือออกใบรับรอง (เช่น certbot) จะสร้างไฟล์ fullchain.pem ที่รวม Leaf + Intermediate ไว้แล้ว ให้ชี้เว็บเซิร์ฟเวอร์ไปที่ fullchain.pem แทน cert.pem เสมอ เพื่อกัน chain ขาด
ปัญหา SSL กับ www/non-www และ subdomain
หลายเว็บตั้งใบรับรองให้เฉพาะ yourdomain.com แต่ลืมว่าผู้ใช้บางคนพิมพ์ www.yourdomain.com เข้ามา ทำให้เจอ name mismatch เฉพาะเวอร์ชัน www หรือกลับกัน ใบรับรอง DV ส่วนใหญ่จากผู้ให้บริการชั้นนำจะใส่ทั้งสองชื่อ (root + www) ให้อัตโนมัติอยู่แล้ว แต่ควรตรวจให้แน่ใจในช่อง SAN (Subject Alternative Name) ว่ามีครบทั้งคู่
ส่วน subdomain อื่น ๆ เช่น shop.yourdomain.com หรือ mail.yourdomain.com จะ ไม่ ถูกครอบคลุมโดยใบรับรองของ root โดยอัตโนมัติ ทางเลือกมีดังนี้:
- Wildcard Certificate (
*.yourdomain.com) ครอบคลุมทุก subdomain ระดับเดียว แต่ ไม่ รวม rootyourdomain.comและไม่รวม subdomain ซ้อนชั้น เช่นa.b.yourdomain.com - Multi-Domain (SAN) Certificate ระบุชื่อโดเมนและ subdomain ที่ต้องการเป็นรายชื่อ เหมาะเมื่อมี subdomain ไม่กี่ตัวที่แน่นอน
- ออกใบรับรองแยกต่อ subdomain — ใช้ได้แต่ดูแลยากเมื่อมีหลายตัว
ในระดับ redirect ควรตั้งให้ www ↔ non-www ชี้ไปทางเดียวกัน (เลือกอันใดอันหนึ่งเป็นหลัก) และบังคับ HTTPS ผ่าน .htaccess เพื่อไม่ให้ผู้ใช้ค้างอยู่บนเวอร์ชันที่ใบรับรองไม่ครอบคลุม
คำถามที่พบบ่อย
SSL ใช้ได้บนคอมแต่ Error บนมือถือ เกิดจากอะไร
มักเกิดจาก Intermediate Certificate ไม่ครบ เบราว์เซอร์บางตัวเติม chain ให้เองได้ บางตัวไม่ได้ — แก้โดยติดตั้งใบรับรองใหม่พร้อม chain bundle เต็ม
แก้ที่เซิร์ฟเวอร์แล้ว แต่ยังเห็น Error เดิม
ลองเปิดเว็บในโหมด Incognito เพราะ Error บางอย่างมาจากใบรับรองเก่าที่ถูกแคชในเครื่อง ไม่ใช่ปัญหาจากเซิร์ฟเวอร์
ควรตรวจ SSL ด้วยเครื่องมืออะไร
ssllabs.com/ssltest ตรวจ chain และโปรโตคอลได้ละเอียดที่สุด ส่วน whynopadlock.com ช่วยหา Mixed Content และคำสั่ง openssl s_client ใช้ตรวจ chain จากเครื่องโดยตรงโดยไม่ต้องพึ่งเว็บภายนอก
Wildcard Certificate ครอบคลุม root domain ด้วยไหม
ไม่ — ใบ Wildcard *.yourdomain.com ครอบคลุมเฉพาะ subdomain ระดับเดียว ไม่รวม yourdomain.com เปล่า ๆ ส่วนใหญ่ผู้ออกใบรับรองจะใส่ root เพิ่มให้ใน SAN อยู่แล้ว แต่ควรตรวจให้แน่ใจก่อนใช้งานจริง
ต้องการ SSL Certificate ที่เชื่อถือได้?
SSL จาก AsiaGB มาจาก CA ชั้นนำ RapidSSL GeoTrust DigiCert มี Warranty และ Support ตลอดอายุใช้งาน
ดู SSL Certificate