最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 如何在 Nginx 中配置国密 SSL 证书时正确绑定对应的国密私钥与算法
时间:2026-08-12 12:01:48 编辑:袖梨 来源:一聚教程网
关键不是绑定私钥,而是确保私钥与证书的算法类型、用途严格匹配,并由同一套国密增强OpenSSL(如GmSSL或Tongsuo)驱动解析;国密双证书要求签名证书配签名私钥、加密证书配加密私钥,两套密钥对必须独立生成且不可复用。
配置国密 SSL 证书时,关键不是“绑定私钥”,而是确保私钥与证书的算法类型、用途严格匹配,并由同一套国密增强 OpenSSL(如 GmSSL 或 Tongsuo)驱动解析。原生 Nginx 不识别 SM2 私钥格式,必须依赖底层密码库正确加载和使用。
确认私钥与证书的算法和用途一一对应
国密双证书体系要求两套独立密钥对:
-
签名证书(如
domain_sign.crt)必须配对使用 签名私钥(domain_sign.key),该私钥仅用于数字签名(身份认证),不可用于密钥交换; -
加密证书(如
domain_enc.crt)必须配对使用 加密私钥(domain_enc.key),该私钥仅用于 SM2 密钥协商(ECDH),不可用于签名; - 两套私钥必须分别生成,不能复用同一 SM2 密钥对——这是 GM/T 0024 标准强制要求,也是等保测评否决项。
验证私钥是否为标准 SM2 格式
使用 GmSSL 工具检查私钥合法性(非 OpenSSL 原生命令):
- 执行
/usr/local/gmssl/bin/gmssl pkey -in domain_sign.key -text -noout,输出中应含sm2字样且无解析错误; - 若提示
unable to load key或显示rsa/ec,说明私钥非 SM2 格式,或被错误转码(如 PEM 头尾误写为BEGIN RSA PRIVATE KEY); - 正确 SM2 私钥 PEM 头应为
-----BEGIN EC PRIVATE KEY-----或-----BEGIN PRIVATE KEY-----(GmSSL v2.5+ 支持后者),且内部 OID 必须为1.2.156.10197.1.301(SM2 标识)。
Nginx 配置中明确指定两套证书+私钥路径
在 server 块中,用专用指令加载国密双证书(注意:不是用 ssl_certificate 和 ssl_certificate_key 简单替换):
- 签名证书链:
ssl_certificate /path/to/domain_sign_bundle.crt; - 签名私钥:
ssl_certificate_key /path/to/domain_sign.key; - 加密证书链:
ssl_certificate_enc /path/to/domain_enc_bundle.crt;(需 GmSSL/Nginx 补丁支持该指令) - 加密私钥:
ssl_certificate_key_enc /path/to/domain_enc.key; - 若使用 Tongsuo,则对应指令为
ssl_certificate_sm2_sign和ssl_certificate_sm2_enc,具体取决于编译时启用的模块。
确保 Nginx 调用的是国密版 OpenSSL 动态库
即使配置路径正确,若 Nginx 实际链接了系统 OpenSSL,SM2 私钥将被忽略或报错:
- 启动前执行
ldd $(which nginx) | grep ssl,确认指向/usr/local/gmssl/lib/libssl.so.1.1; - 避免系统冲突:安装 GmSSL 后立即建立软链接
ln -sf /usr/local/gmssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1; - 检查 Nginx 错误日志,出现
SSL_CTX_use_PrivateKey_file failed或unknown algorithm,大概率是底层库不支持 SM2。
相关文章
- 女神漫画在线阅读页面免费入口网址-女神漫画登录页面免费漫画入口页面在线看 08-12
- 樱花动漫官网入口-樱花动漫官方正版入口 08-12
- QQ空间网页版登录入口在哪-网页版登录入口方法介绍 08-12
- 迅捷 FW325R 无线路由器WiFi密码名称更改设置 08-12
- 索拉 20 级突破战 180 秒极限通关指南 08-12
- 永恒之塔2电脑版下载直达_Aion2 PC网页版官方入口官网登录 08-12