Skip to main content

หลังจากกำหนดค่าใบรับรอง Guomi แล้ว Nginx แจ้งข้อผิดพลาดตอนเริ่มต้น SSL_CTX_use_certificate failed จะแก้ไขอย่างไร?

สาเหตุของข้อผิดพลาด

เนื่องจาก ไลบรารี OpenSSL ระดับล่างของมิดเดิลแวร์ปัจจุบันไม่รองรับอัลกอริทึม Guomi (SM2/SM3/SM4)

OpenSSL มาตรฐานไม่สามารถจดจำรูปแบบใบรับรอง Guomi ได้ ส่งผลให้การโหลดใบรับรองล้มเหลว

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

จำเป็นต้องคอมไพล์และติดตั้ง OpenSSL เวอร์ชัน Guomi (เช่น GmSSL, Tongsuo/ทองแดง ฯลฯ ซึ่งเป็นสาขาของ OpenSSL ที่รองรับอัลกอริทึม Guomi) จากนั้นใช้เวอร์ชันดังกล่าวคอมไพล์ Nginx ใหม่ เพื่อให้รองรับการโหลดใบรับรอง Guomi

ขั้นตอนการดำเนินการ (โดยย่อ):

  1. ดาวน์โหลดและคอมไพล์ OpenSSL เวอร์ชัน Guomi (แนะนำ: Tongsuo/ทองแดง)
  2. ใช้ OpenSSL เวอร์ชัน Guomi คอมไพล์ Nginx ใหม่ (--with-openssl=... ชี้ไปยังเวอร์ชัน Guomi)
  3. กำหนดค่าใบรับรองคู่ของ Nginx (ใบรับรอง Guomi + ใบรับรอง RSA) เพื่อให้รองรับทุกสถานการณ์