Zum Hauptinhalt springen

Nach der Konfiguration eines Guomi-Kryptografie (SM)-Zertifikats meldet Nginx beim Start den Fehler SSL_CTX_use_certificate failed – wie lässt sich das beheben?

Fehlerursache

Dies liegt daran, dass die zugrunde liegende OpenSSL-Bibliothek der aktuellen Middleware keine Guomi-Kryptografie (SM)-Algorithmen unterstützt (SM2/SM3/SM4).

Das Standard-OpenSSL kann das Format von Guomi-Kryptografie (SM)-Zertifikaten nicht erkennen, wodurch das Laden des Zertifikats fehlschlägt.

Lösung

Es ist erforderlich, eine Guomi-Kryptografie (SM)-Version von OpenSSL zu kompilieren und zu installieren (z. B. GmSSL, Tongsuo oder andere OpenSSL-Ableger mit Unterstützung für Guomi-Kryptografie (SM)-Algorithmen), und anschließend Nginx mit dieser Version neu zu kompilieren, damit das Laden von Guomi-Kryptografie (SM)-Zertifikaten unterstützt wird.

Vorgehen (Kurzfassung):

  1. Guomi-Kryptografie (SM)-Version von OpenSSL herunterladen und kompilieren (empfohlen: Tongsuo)
  2. Nginx mit der Guomi-Kryptografie (SM)-Version von OpenSSL neu kompilieren (--with-openssl=... verweist auf die Guomi-Kryptografie (SM)-Version)
  3. Duales Zertifikat in Nginx konfigurieren (Guomi-Kryptografie (SM)-Zertifikat + RSA-Zertifikat), um umfassende Kompatibilität sicherzustellen