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