最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 如何在 Nginx 中配置双证书并行支持 RSA 与国密 SSL 协同工作
时间:2026-08-17 12:02:49 编辑:袖梨 来源:一聚教程网
必须替换为国密增强版OpenSSL(如Tongsuo或GMSSL),编译定制Nginx,配置ssl_protocols与ssl_ciphers优先级,并按顺序加载SM2与RSA双证书,由客户端在ClientHello中自主协商算法栈。
要在 Nginx 中真正实现 RSA 与国密(SM2/SM3/SM4)双证书并行、协同工作,关键不是简单地把两个证书“都写上去”,而是构建一套基于客户端能力自动协商的双栈 TLS 服务。原生 Nginx + OpenSSL 完全不支持国密算法,必须先替换底层密码库,再配置协议与套件优先级,最后才涉及证书加载方式。
必须使用国密增强版 OpenSSL 替代库
标准 OpenSSL 和最新 Nginx 编译后无法识别 SM2 公钥、SM3 哈希或 SM4 加密套件。实际部署中必须选用以下任一国密分支:
- Tongsuo(铜锁):蚂蚁开源,TLS 1.3 国密支持稳定,社区活跃,推荐用于生产环境
- GMSSL:成熟度高,文档齐全,适合快速验证和中小项目
编译 Nginx 时需显式指定:--with-openssl=/path/to/tongsuo,而非系统自带 OpenSSL。验证是否生效:运行 tongsuo version 应显示含 sm2/sm3/sm4 的 cipher 列表;执行 openssl ecparam -list_curves | grep sm2 应有输出。
单 virtual host 内启用智能协商机制
不需要开多个端口、也不需要重复 server 块。所有逻辑集中在同一个 server { } 中,靠协议与套件控制握手路径:
-
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3:TLCP(国密传输层协议)对应 TLS 1.1,但保留 1.2/1.3 可确保国际浏览器兼容 -
ssl_ciphers "TLS_SM4_SM3:ECDHE-SM4-SM3:AES128-GCM-SHA256":国密套件置前,国际套件紧随其后,由客户端在 ClientHello 中声明支持的 cipher 决定走哪条链路 -
ssl_prefer_server_ciphers on:强制服务端主导套件选择,避免客户端低优先级套件干扰协商结果
双证书的两种主流模式及配置写法
根据合规要求和部署目标,主要有两类实践方式:
-
签名+加密双 SM2 证书(TLCP 合规必需):适用于政务、金融等强监管场景。需两套 SM2 证书——
server_sign.crt/.key(身份认证与签名)和server_enc.crt/.key(密钥交换)。Nginx 配置中使用ssl_certificate_enc和ssl_certificate_key_enc指令(仅国密版 Nginx 支持) -
SM2 + RSA 双算法证书共存(兼顾合规与兼容):面向公众服务,要求 Chrome/Firefox 正常访问。此时需加载四份文件:
ssl_certificate和ssl_certificate_key各指定两次(先 SM2,后 RSA),Nginx 会按顺序尝试匹配客户端能力
示例(SM2+RSA 共存写法):
ssl_certificate /path/to/sm2_cert.pem;ssl_certificate_key /path/to/sm2_key.key;
ssl_certificate /path/to/rsa_cert.pem;
ssl_certificate_key /path/to/rsa_key.key;
证书准备与格式要点
证书不是随便拿两个 PEM 文件就能用,需满足特定结构和格式要求:
- SM2 证书必须由 CFCA、沃通、DNSPod 国密版等具备资质的 CA 签发,且公钥类型明确为
id-ecPublicKey (1.2.840.10045.2.1)+ curvesm2p256v1 - 私钥必须是未加密 PEM 格式,不可带 passphrase;生成命令应为:
openssl ecparam -name sm2p256v1 -genkey -out server_sm2.key - RSA 证书建议选用 Sectigo 或 DigiCert 等国际主流中级 CA,确保中间链完整,避免握手失败
- 若使用 DER 格式证书,需转为 PEM:
openssl x509 -inform der -in cert.sm2 -out cert.pem
相关文章
- Yandex引擎官网入口-Yandex网页版入口 08-17
- 华为ws5200四核版支持mesh吗(华为ws5200四核版可以用mesh吗) 08-17
- 华为路由ax6怎么设置无线桥接(华为路由ax6设置无线桥接方法) 08-17
- 消灭暴走潮 奖励自动砸进你背包 08-17
- 职教云最新登录入口-职教云官方安全入口 08-17
- 一梦江湖自定义称谓方法全解析(打造个性化称谓,让你独树一帜) 08-17