Ana içeriğe geç

SSL_CTX_use_certificate başarısız olduğunda Nginx, SM2 sertifikası yapılandırıldıktan sonra başlatma hatası veriyor, nasıl çözülür?

Hata nedeni

Bunun sebebi, mevcut ara katmanın altındaki OpenSSL kütüphanesinin ulusal şifreleme algoritmalarını (SM2/SM3/SM4) desteklememesidir.

Standart OpenSSL, ulusal şifreleme sertifika formatını tanıyamadığı için sertifika yüklenirken hata oluşur.

Çözüm

Ulusal şifreleme destekli OpenSSL (GmSSL, Tongsuo gibi ulusal şifreleme algoritmalarını destekleyen OpenSSL çatalları) derlenip kurulmalı ve ardından bu sürüm kullanılarak Nginx yeniden derlenmelidir; böylece ulusal şifreleme sertifikalarının yüklenmesi desteklenir.

İşlem adımları (özet):

  1. Ulusal şifreleme destekli OpenSSL’i indirin ve derleyin (önerilen: Tongsuo)
  2. Ulusal şifreleme destekli OpenSSL kullanarak Nginx’i yeniden derleyin (--with-openssl=... ulusal şifreleme sürümünü işaret eder)
  3. Tüm senaryolarda uyumluluk sağlamak için Nginx’te çift sertifika (ulusal şifreleme sertifikası + RSA sertifikası) yapılandırın