国密 (SM2/SM3/SM4) 配置与验证
国密业务首先要确定所用的握手协议。当前 SSL 策略区分“TLS 1.3 国密”“TLCP-SM2”和“TLCP-RSA”,它们不能只靠替换证书互相转换。
本指南以 TLCP-SM2 前端服务为主。虚拟服务、服务器池的基础操作见 HTTPS 配置指南。
第一步:确认协议与客户端能力
与业务对端确认协议、套件和认证方式,再准备能明确指定该协议的客户端。浏览器或命令行工具的具体构建必须支持所选协议。
| 协议能力 | 客户端 SSL 策略中的身份配置 | 套件配置位置 |
|---|---|---|
| TLS 1.3 国密 | SM2 签名证书及匹配私钥 | TLS 1.3 套件 |
| TLCP-SM2 | SM2 签名证书、SM2 加密证书及各自私钥 | TLS/TLCP 套件 |
| TLCP-RSA | RSA 签名证书、RSA 加密证书及各自私钥 | TLS/TLCP 套件 |
| 同时允许国际标准 TLS | 另行配置国际标准 TLS 身份证书及私钥 | 按启用版本配置两个套件页签 |
允许多种协议时,客户端可能协商到普通 TLS。页面能够打开、浏览器显示安全连接,都不能单独证明使用了 TLCP 或国密套件。
第二步:上传证书和私钥
以 TLCP-SM2 为例,准备四项文件:SM2 签名证书、签名私钥、SM2 加密证书、加密私钥;按证书颁发方要求准备完整证书链。
进入【平台系统 → SSL 证书管理】,分别导入。建议命名时写明用途,例如 gm-sign-cert、gm-sign-key、gm-encrypt-cert、gm-encrypt-key。

当前策略提供按身份用途填写的字段,应分别选择签名与加密身份。不要仅按“第一张、第二张”的顺序猜测用途,也不要仅凭资源同名判断证书和私钥是否匹配。
第三步:创建客户端 SSL 策略
进入【负载流量管理 → 策略配置 → SSL 策略 → 客户端 SSL 策略】,点击“新增”。
- 填写名称,协议能力选择“TLCP-SM2”。
- 在“TLS/TLCP 套件”页签中选择对端支持的 TLCP-SM2 套件,例如
ECC-SM2-SM4-GCM-SM3。 - 向下找到身份配置,分别为“SM2 签名证书”“SM2 加密证书”选择证书与对应私钥。
- 如需兼容国际标准 TLS,再勾选该协议能力,配置其版本、套件和独立身份证书。
- 核对页面的协议、套件、身份不匹配提示,保存策略。

上图只展示套件操作区域。选择了 TLCP 套件后,仍须正确设置协议能力和证书身份;套件列表不能代替这两步。
第四步:绑定虚拟服务并执行变更
创建或修改 HTTPS、TCP/TLS 虚拟服务,绑定刚创建的客户端 SSL 策略,保存并点击“变更执行”。
如果只有客户端到负载均衡的一段使用国密,后端可按实际服务选择明文或 TLS。如果后端也使用 TLCP,应另建服务器 SSL 策略,配置后端协议及套件,并绑定到后端加密处理配置。前端启用 TLCP 不会自动改变后端连接协议。
第五步:明确指定协议进行验证
以下使用支持 NTLS/TLCP 的 Tongsuo openssl 命令。请填写实际安装路径,不能直接假定系统自带的 openssl 支持 -enable_ntls、-ntls。
域名、地址、端口和 CA 文件均需替换:
/path/to/tongsuo/bin/openssl s_client \
-connect 192.0.2.10:443 -servername gm.example.com \
-enable_ntls -ntls -cipher ECC-SM2-SM4-GCM-SM3 \
-CAfile /path/to/gm-ca-chain.pem -verify_return_error </dev/null核对输出中的协议、套件和证书校验结果。此类 TLCP 握手在工具输出中可显示为 NTLSv1.1,套件应为指定的 ECC-SM2-SM4-GCM-SM3。握手成功后,还需发送业务请求确认返回内容。
若同一虚拟服务还支持普通 TLS,应分别验证两种协议,不能用普通 TLS 成功代替国密验证。TLS 1.3 国密使用对应的 TLS 1.3 客户端能力与套件配置,不使用上述 -ntls 命令来判断。
常见问题排查
| 现象 | 优先检查 |
|---|---|
工具报未知选项 -ntls | 当前执行的是否为支持 NTLS 的 Tongsuo 程序,而不是系统 OpenSSL |
| 选了国密证书仍无法握手 | 协议能力、套件、签名与加密证书角色及各自私钥是否一致 |
| 浏览器能打开,但协商结果是普通 TLS | 客户端是否支持并实际启用目标协议;是否发生协议回退 |
| 前端握手成功,业务访问失败 | 后端处理方式、后端协议套件与服务器 SSL 策略 |
| 证书校验失败 | CA 信任链、证书有效期、域名及所选择的身份用途 |
更多字段含义见 SSL 策略手册。
