跳到主要内容
版本:V1.3.10

配置国密证书后,Nginx 启动报错 SSL_CTX_use_certificate failed,如何解决?

报错原因

这是因为当前中间件底层的 OpenSSL 库不支持国密算法(SM2/SM3/SM4)。

标准的 OpenSSL 无法识别国密证书格式,导致加载证书失败。

解决方案

需要编译安装国密版 OpenSSL(如 GmSSL、铜锁/Tongsuo 等支持国密算法的 OpenSSL 分支),然后使用该版本重新编译 Nginx,使其支持国密证书的加载。

操作步骤(简要):

  1. 下载并编译国密版 OpenSSL(推荐:铜锁 Tongsuo)
  2. 使用国密版 OpenSSL 重新编译 Nginx(--with-openssl=... 指向国密版)
  3. 配置 Nginx 双证书(国密证书 + RSA 证书),确保全场景兼容