跳至主要内容

配置國密憑證後,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 憑證),確保全場景相容