Aller au contenu principal

Après avoir configuré un certificat Guomi, Nginx ne démarre pas et affiche SSL_CTX_use_certificate failed. Comment résoudre ce problème ?

Cause de l’erreur

Cela se produit parce que la bibliothèque OpenSSL sous-jacente du middleware ne prend pas en charge les algorithmes Guomi (SM) (SM2/SM3/SM4).

La version standard d’OpenSSL ne reconnaît pas le format des certificats Guomi, ce qui entraîne l’échec du chargement du certificat.

Solution

Il est nécessaire de compiler et d’installer une version d’OpenSSL compatible Guomi (comme GmSSL, Tongsuo, ou d’autres branches d’OpenSSL prenant en charge les algorithmes Guomi), puis de recompiler Nginx avec cette version afin qu’il puisse charger des certificats Guomi.

Étapes (résumé) :

  1. Télécharger et compiler une version d’OpenSSL compatible Guomi (recommandé : Tongsuo)
  2. Recompiler Nginx avec cette version d’OpenSSL compatible Guomi (--with-openssl=... pointe vers la version Guomi)
  3. Configurer Nginx avec un double certificat (certificat Guomi + certificat RSA) pour garantir la compatibilité dans tous les scénarios