ERR_CERT_AUTHORITY_INVALID คือข้อผิดพลาดอะไร จะแก้ไขอย่างไร?
ความหมายของข้อผิดพลาด
ภาษาไทย: ผู้ออกใบรับรองไม่ถูกต้อง / ใบรับรองไม่ได้รับความเชื่อถือ เป็นข้อผิดพลาด SSL Certificate ที่พบบ่อยในเบราว์เซอร์
เมื่อคุณใช้เบราว์เซอร์เข้าถึงเว็บไซต์ HTTPS เบราว์เซอร์จะตรวจสอบว่า certificate chain ได้รับการออกโดย root certificate authority ที่เชื่อถือได้หรือไม่ หากเบราว์เซอร์ไม่สามารถเชื่อมโยงใบรับรองของเว็บไซต์เข้ากับ root certificate ที่ติดตั้งอยู่ในเครื่องได้ จะแสดงข้อผิดพลาดนี้
ข้อความแจ้งเตือนของแต่ละเบราว์เซอร์อาจแตกต่างกันเล็กน้อย:
- Chrome/Edge:
NET::ERR_CERT_AUTHORITY_INVALIDหรือ "การเชื่อมต่อของคุณไม่ใช่การเชื่อมต่อแบบส่วนตัว" - Firefox:
SEC_ERROR_UNKNOWN_ISSUER - Safari: "การเชื่อมต่อนี้ไม่ใช่การเชื่อมต่อแบบส่วนตัว"
สาเหตุที่ทำให้เกิด
1. Root certificate / Intermediate certificate chain ไม่ครบถ้วนหรือกำหนดค่าไม่สมบูรณ์ (พบบ่อยที่สุด)
บนเซิร์ฟเวอร์มีการติดตั้งเฉพาะ site certificate แต่ไม่ได้ติดตั้ง intermediate certificate (certificate chain) ทำให้เบราว์เซอร์ไม่สามารถระบุ certificate authority ได้
2. ใบรับรองถูกเพิกถอน
หาก CA เพิกถอนใบรับรองเนื่องจากสาเหตุ เช่น การรั่วไหลของกุญแจ เบราว์เซอร์จะปฏิเสธการเชื่อมต่อหลังจากตรวจพบสถานะการเพิกถอนผ่าน CRL หรือ OCSP
3. การตรวจสอบ OCSP ล้มเหลว
เบราว์เซอร์บางตัวเปิดใช้งาน OCSP Stapling หรือการสอบถาม OCSP แบบเรียลไทม์ หากเซิร์ฟเวอร์ OCSP ไม่สามารถเข้าถึงได้ การตอบสนองหมดเวลา หรือถูกบล็อก เบราว์เซอร์อาจแสดงข้อผิดพลาดเนื่องจากไม่สามารถตรวจสอบสถานะใบรับรองได้
4. เซิร์ฟเวอร์ของผู้ให้บริการใบรับรองขัดข้อง
เมื่อเซิร์ฟเวอร์ OCSP / CRL ของ CA เกิดข้อขัดข้อง เบราว์เซอร์อาจแสดงข้อผิดพลาดเนื่องจากไม่สามารถตรวจสอบสถานะการเพิกถอนได้ (ขึ้นอยู่กับนโยบาย "soft fail" ของเบราว์เซอร์)
5. คลัง root certificate บนอุปกรณ์ล้าสมัย
คลัง root certificate ที่ติดตั้งมากับระบบปฏิบัติการไม่ได้รับการอัปเดตเป็นเวลานาน ทำให้ขาด root certificate ที่ออกใบรับรองนั้น ส่งผลให้ไม่สามารถสร้าง trust chain ได้ แนะนำให้อัปเดตระบบปฏิบัติการหรือนำเข้า root certificate ใหม่ด้วยตนเอง
6. เวลาของระบบไม่ถูกต้อง
เวลาของระบบฝั่งไคลเอนต์คลาดเคลื่อนมากเกินไป ทำให้เบราว์เซอร์ตัดสินผิดว่าใบรับรอง "ยังไม่มีผลบังคับใช้" หรือ "หมดอายุแล้ว" จึงแสดงข้อผิดพลาดว่าใบรับรองไม่ได้รับความเชื่อถือ แก้ไขโดยตั้งเวลาระบบให้ตรงกับเวลาปัจจุบัน
7. การดักจับ/แก้ไขใบรับรองผ่านเครือข่าย
ซอฟต์แวร์ความปลอดภัย ไฟร์วอลล์ หรืออุปกรณ์ man-in-the-middle บางชนิดอาจทำ SSL inspection กับทราฟฟิก HTTPS และแทนที่ใบรับรองเดิมด้วย self-signed certificate ที่ส่งให้เบราว์เซอร์ หาก self-signed certificate นั้นไม่ได้ถูกเพิ่มเข้าในรายการที่เชื่อถือของไคลเอนต์ เบราว์เซอร์จะแสดงข้อผิดพลาดนี้
แนวทางแก้ไข
สำหรับ "certificate chain ไม่สมบูรณ์" (สาเหตุที่พบบ่อยที่สุด):
- เซิร์ฟเวอร์ส่วนใหญ่ (Nginx/Apache ฯลฯ): กรุณาใช้ไฟล์
.crtที่อยู่ในโฟลเดอร์ "Nginx" ของแพ็กเกจใบรับรองที่เราให้มาโดยตรง ไฟล์ดังกล่าวมีทั้ง site certificate และ certificate chain ครบถ้วนอยู่แล้ว เพียงนำไปกำหนดค่าได้ทันที - กรณีที่ต้องอัปโหลดไฟล์ certificate chain แยกต่างหาก: กรุณาใช้ไฟล์
.ca-bundleที่อยู่ในโฟลเดอร์ "Apache" ของแพ็กเกจเป็นไฟล์ certificate chain เพื่ออัปโหลด - เซิร์ฟเวอร์ IIS: ต้องนำเข้า intermediate certificate (ซึ่งรวมอยู่ในไฟล์ pfx แล้ว) พร้อมกับ site certificate ใน IIS management console และผูกอย่างถูกต้อง การอัปโหลดและผูกเฉพาะ site certificate ใน IIS จะทำให้เกิดข้อผิดพลาดนี้
สำหรับ "ใบรับรองถูกเพิกถอน":
- เข้าสู่ระบบคอนโซล Racent เพื่อตรวจสอบสถานะใบรับรอง หากถูกเพิกถอนแล้วต้องยื่นขอใหม่หรือออกใบรับรองใหม่
สำหรับ "เวลาของระบบไม่ถูกต้อง":
- ตั้งเวลาให้ระบบปฏิบัติการซิงก์กับเวลาอินเทอร์เน็ต (Windows: การตั้งค่า → เวลาและภาษา → ตั้งเวลาอัตโนมัติ)
สำหรับ "คลัง root certificate ล้าสมัย":
- Windows: เรียกใช้ Windows Update เพื่อติดตั้งการอัปเดต root certificate ล่าสุด
- Linux:
sudo apt update && sudo apt install ca-certificates(Debian/Ubuntu) หรือsudo yum update ca-certificates(CentOS)