国密SSL 证书和国际 SSL 证书可以同时部署吗?
可以,但需要先区分“同时存在两张证书”和“同一个域名、同一个 IP 自动适配国密与国际浏览器”这两个概念。
如果业务既需要国密 TLS,又要兼容 Chrome、Edge、Safari 等普通浏览器,比较常见的做法是在 HTTPS 接入层配置国密和国际两套证书,由支持相应协议的网关完成连接协商。
简单理解就是:
国密客户端
↓
国密 TLS / TLCP
↓
国密网关
↓
业务系统
普通浏览器
↓
标准 TLS
↓
国密网关
↓
业务系统
两类客户端访问的仍然可以是同一个业务域名。真正决定能否这样部署的,不是域名本身,而是前端网关是否同时具备国密协议和标准 TLS 的处理能力。关于算法与加密机制的差异,可查阅 什么是SSL证书 的基础说明。
一、为什么有些系统需要同时支持国密和国际 HTTPS?
很多系统在改造国密 HTTPS 时会遇到一个现实问题:
现有客户端不一定都支持国密协议。
例如面向公众的政务网站、业务平台,如果直接把公网 HTTPS 全部切换成国密 TLS,那么支持国密协议的专用客户端可以正常访问,但普通浏览器未必能够建立连接。
如果业务又存在明确的国密应用要求,就会出现两个需求:
- 特定国密客户端需要使用国密算法建立安全连接;
- 普通用户仍然需要通过标准 TLS 正常访问。
因此,部分系统会采用“国密 + 国际”双轨接入的方式。
需要注意的是,是否必须部署国密证书,并不能简单由“等保 2.0”四个字直接判断。如果系统属于密评范围,或者行业监管、密码应用方案明确要求使用国密算法,则应按照实际测评和合规要求确定国密 TLS 的部署方式。
二、国密证书和 RSA/ECC 证书分别负责什么?
两者最大的区别在于所采用的密码算法体系和协议环境不同。
国际 HTTPS 环境中比较常见的是:
RSA / ECC
+
SHA-256 等摘要算法
+
AES-GCM / ChaCha20 等对称加密
+
标准 TLS
国密 TLS 环境则采用国产密码算法,例如:
SM2
SM3
SM4
在采用 TLCP 双证书模式时,还会涉及两套国密证书:
- 签名证书:用于身份认证和数字签名;
- 加密证书:用于密钥协商相关的加密操作。
所以,国密双证书并不是简单地把“一张 RSA 证书换成一张 SM2 证书”。
如果要详细了解 SM2、SM3、SM4 之间的关系,可以进一步参考 国密SSL证书 相关专题内容。
三、国密和国际证书能不能绑定同一个域名?
可以,但这里真正需要考虑的是接入设备是否支持两种协议环境。
例如:
www.example.com
│
│
443 / 同一IP
│
▼
国密网关
├── 标准 TLS → RSA/ECC 证书
│
└── 国密 TLS → SM2 国密证书
客户端发起连接后,网关根据客户端支持的协议和密码套件进行相应的握手。
支持国密协议的客户端,可以建立国密连接;普通浏览器则使用标准 TLS。
所以这里并不是:
“服务器看到是 360 浏览器,就主动换国密证书。”
而是:
客户端与服务器根据各自支持的协议和密码套件进行协商,网关根据协商结果使用对应的 TLS 能力和证书。
这也是为什么普通 Nginx 配置文件不能简单增加一行:
ssl_certificate sm2.crt;
就完成国密和国际 HTTPS 双轨部署。
四、使用 Nginx 部署双证书,需要注意什么?
普通 Nginx + 标准 OpenSSL 环境,不能直接按照普通 HTTPS 的方式实现完整的 TLCP 双证书部署。
如果需要在 Nginx 层同时处理国密和国际 HTTPS,需要确认当前环境使用的 TLS 库、Nginx 版本或增强模块是否支持国密协议。
配置形式也会因具体实现不同而有所区别。
以支持国密的 Nginx 环境为例,可能会看到类似下面的配置:
server {
listen 443 ssl;
server_name www.example.com;
# 国际证书
ssl_certificate /etc/nginx/cert/rsa.crt;
ssl_certificate_key /etc/nginx/cert/rsa.key;
# 国密签名证书
ssl_sign_certificate /etc/nginx/cert/sm2_sign.crt;
ssl_sign_certificate_key /etc/nginx/cert/sm2_sign.key;
# 国密加密证书
ssl_enc_certificate /etc/nginx/cert/sm2_enc.crt;
ssl_enc_certificate_key /etc/nginx/cert/sm2_enc.key;
}
这里需要特别强调:
以上配置不是标准 Nginx 的通用配置模板。
如果服务器使用的是普通发行版 Nginx,需要先确认所使用的 Nginx/TLS 库是否提供这些国密指令。直接复制到标准 Nginx 中,很可能出现:
unknown directive
或者启动配置失败。
因此,实际项目中更重要的是先确定国密能力放在哪里,而不是先写 Nginx 配置。
五、国密 HTTPS 还可以部署在 CDN、WAF 或负载均衡上
如果企业已经使用 CDN、WAF、SLB 或其他 HTTPS 接入设备,可以考虑把国密处理放到前端接入层。
架构可能是:
国密客户端 ─┐
├→ 国密/CDN/WAF → 源站
普通浏览器 ─┘
这种情况下:
- 国密证书部署在支持国密的接入节点;
- 国际证书也部署在接入节点;
- TLS 在接入层完成;
- 源站根据实际架构继续使用 HTTP 或 HTTPS。
这样做的一个好处是,源站不一定需要进行大规模国密改造。
但如果源站与 CDN/WAF 之间也有国密传输要求,则需要继续检查后端链路,而不能只看客户端到 CDN 这一段。
六、部署国密和国际双证书时,最容易忽略的几个问题
1. 两套证书的域名必须匹配
无论是国密证书还是国际证书,访问:
www.example.com
时,都应该确认对应证书覆盖这个域名。
如果国际证书包含 www.example.com,但国密证书没有覆盖该域名,仍然可能导致国密客户端访问异常。
2. 国密证书不等于国密协议
这是部署时非常容易混淆的一点。
有 SM2 证书,并不意味着服务器就自动支持完整的国密 TLS。
需要同时考虑:
国密证书
+
国密 TLS 协议
+
国密密码套件
+
服务器/网关国密能力
+
客户端国密能力
缺少其中任何一个环节,都可能无法建立国密连接。
3. 不要直接拿普通 OpenSSL 配置测试
如果使用标准 OpenSSL/Nginx 环境,发现 SM2 证书无法按照预期完成 TLCP 握手,并不能简单判断为“证书有问题”。
先确认:
- TLS 库是否支持国密协议;
- Nginx 是否编译了对应模块;
- 网关是否支持 TLCP;
- 客户端是否支持国密协议;
- 当前采用的是单证书还是双证书模式。
这样排查效率会高很多。
4. CDN/WAF 后面还有源站时,要确认 TLS 到底在哪里终止
例如:
客户端
↓ HTTPS
WAF
↓ HTTP
源站
这种情况下,客户端看到的是 WAF 提供的证书。
如果改成:
客户端
↓ HTTPS
WAF
↓ HTTPS
源站
那么源站同样需要配置对应证书。
因此排查证书问题时,不要只登录源站服务器看证书,先确认用户实际访问经过了哪些节点。
七、国密和国际证书双轨部署适合什么场景?
这类方案比较适合以下情况:
| 场景 | 是否适合双轨部署 |
|---|---|
| 面向普通互联网用户的网站 | 视国密要求决定 |
| 政务平台 | 较常见 |
| 金融业务系统 | 根据密码应用要求确定 |
| 企业内部系统 | 根据客户端环境决定 |
| 已有大量普通浏览器用户 | 双轨更容易兼容 |
| 已经存在国密客户端 | 可以考虑 |
| 单纯个人网站 | 一般没有必要 |
真正需要关注的不是“国密证书是不是更安全”,而是业务到底需要哪一种密码体系,以及客户端是否能够支持。
常见问题 FAQ
Q:国密 SSL 证书和普通 SSL 证书可以使用同一个域名吗?
可以。
关键不是域名能不能重复,而是 HTTPS 接入设备是否支持国密和标准 TLS 两套协议环境,以及对应证书是否覆盖该域名。
Q:一个 IP 可以同时部署国密和国际 SSL 证书吗?
可以,但需要相应的国密网关、TLS 实现或其他接入设备支持双轨协议处理。
不能把“同一个 IP”简单理解为“在普通 Nginx 的 443 配置里放两张证书”就一定能够工作。
Q:有了 SM2 证书,就能让 Chrome 访问国密 HTTPS 吗?
不能这么理解。
客户端是否能够建立国密连接,取决于客户端是否支持相应的国密 TLS 协议和密码套件。
因此,证书支持 SM2 与浏览器支持国密 HTTPS 是两个不同的问题。
Q:国密 SSL 一定要两张证书吗?
如果采用 TLCP 双证书模式,需要配置签名证书和加密证书。
但不能把所有“SM2 证书”都简单等同于“两张证书”的部署方式。实际配置应根据 CA 签发的证书类型和服务器采用的国密协议模式确定。
Q:国密和 RSA/ECC 双证书部署后,普通用户需要修改浏览器吗?
如果接入设备能够同时提供标准 TLS 和国密 TLS,并且标准 TLS 配置正常,普通用户一般继续使用常规浏览器访问即可。
国密客户端则需要具备相应的国密协议支持。
最后总结
国密 SSL 与 RSA/ECC 国际 SSL 可以并存,但“双证书并存”并不只是给一个域名绑定两张证书这么简单。
真正的双轨 HTTPS 需要同时解决三个问题:
- 证书层:国际 RSA/ECC 证书与国密证书覆盖正确的域名;
- 协议层:接入设备同时支持标准 TLS 与国密 TLS/TLCP;
- 客户端层:不同客户端根据自身能力建立对应的安全连接。
因此,如果项目同时面对普通互联网用户和国密客户端,比较合理的思路是先确定国密合规要求,再确定 TLS 接入设备,最后设计证书部署方式,而不是先购买两张证书再考虑怎么绑定。



京公网安备11010502031690号
网站经营企业工商营业执照
















