หลังจากกำหนดค่าใบรับรอง Guomi แล้ว Nginx แจ้งข้อผิดพลาดตอนเริ่มต้น SSL_CTX_use_certificate failed จะแก้ไขอย่างไร?
สาเหตุของข้อผิดพลาด
เนื่องจาก ไลบรารี OpenSSL ระดับล่างของมิดเดิลแวร์ปัจจุบันไม่รองรับอัลกอริทึม Guomi (SM2/SM3/SM4)
OpenSSL มาตรฐานไม่สามารถจดจำรูปแบบใบรับรอง Guomi ได้ ส่งผลให้การโหลดใบรับรองล้มเหลว
วิธีแก้ปัญหา
จำเป็นต้องคอมไพล์และติดตั้ง OpenSSL เวอร์ชัน Guomi (เช่น GmSSL, Tongsuo/ทองแดง ฯลฯ ซึ่งเป็นสาขาของ OpenSSL ที่รองรับอัลกอริทึม Guomi) จากนั้นใช้เวอร์ชันดังกล่าวคอมไพล์ Nginx ใหม่ เพื่อให้รองรับการโหลดใบรับรอง Guomi
ขั้นตอนการดำเนินการ (โดยย่อ):
- ดาวน์โหลดและคอมไพล์ OpenSSL เวอร์ชัน Guomi (แนะนำ: Tongsuo/ทองแดง)
- ใช้ OpenSSL เวอร์ชัน Guomi คอมไพล์ Nginx ใหม่ (
--with-openssl=...ชี้ไปยังเวอร์ชัน Guomi) - กำหนดค่าใบรับรองคู่ของ Nginx (ใบรับรอง Guomi + ใบรับรอง RSA) เพื่อให้รองรับทุกสถานการณ์