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):
- Guomi-Kryptografie (SM)-Version von OpenSSL herunterladen und kompilieren (empfohlen: Tongsuo)
- Nginx mit der Guomi-Kryptografie (SM)-Version von OpenSSL neu kompilieren (
--with-openssl=...verweist auf die Guomi-Kryptografie (SM)-Version) - Duales Zertifikat in Nginx konfigurieren (Guomi-Kryptografie (SM)-Zertifikat + RSA-Zertifikat), um umfassende Kompatibilität sicherzustellen