国密SSL证书的部署方法涉及使用SM2算法的非对称加密体系,与国际通用的RSA算法不同,因此在服务器配置和兼容性方面有其特殊性。以下是基于主流Web服务器(如Nginx)的标准部署流程及注意事项。
1. 生成国密SSL证书
首先需通过支持国密算法的CA机构申请SM2证书。以华测国密CA为例:
- 访问华测国密CA平台;
- 提交域名信息并完成身份验证;
- 在线生成SM2算法的CSR(证书签名请求),或由系统自动生成密钥对;
- 下发证书后将获得以下文件:
SS_sign.crt:签名证书SS_sign.key:签名私钥SE_enc.crt:加密证书SE_enc.key:加密私钥
注意:国密SM2证书采用双证书结构(签名+加密),不同于传统单证书模式。
2. Nginx 部署国密SSL证书
由于标准OpenSSL不支持SM2/SM3/SM4算法,必须使用支持国密的OpenSSL分支(如GmSSL)重新编译Nginx。
步骤如下:
准备环境
- 安装依赖库:
yum install gcc pcre-devel zlib-devel openssl-devel -y - 下载并解压支持国密的OpenSSL版本(例如 GmSSL 或 商用国密版OpenSSL)
unzip openssl-gm.zip -d /opt/openssl-gm
- 安装依赖库:
下载并编译Nginx
tar -zxvf nginx-1.25.2.tar.gz cd nginx-1.25.2 ./configure \ --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-openssl=/opt/openssl-gm \ --with-openssl-opt=enable-gm make && make install上传证书文件 将四个国密证书文件上传至服务器指定目录,例如
/etc/nginx/certs/sm2/:- SS_sign.crt
- SS_sign.key
- SE_enc.crt
- SE_enc.key
修改nginx.conf 配置
server { listen 443 ssl; server_name www.example.com;ssl_certificate /etc/nginx/certs/sm2/SS_sign.crt; ssl_certificate_key /etc/nginx/certs/sm2/SS_sign.key; ssl_certificate_enc /etc/nginx/certs/sm2/SE_enc.crt; ssl_certificate_key_enc /etc/nginx/certs/sm2/SE_enc.key;ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-SM2-WITH-SMS4-SM3; ssl_prefer_server_ciphers on;
location / { root html; index index.html; }
}
注:
ssl_certificate_enc和ssl_certificate_key_enc是国密扩展指令,仅在支持SM2的Nginx中可用。启动或重载Nginx
/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload浏览器测试 使用支持国密算法的专用浏览器(如密信浏览器、奇安信可信浏览器等)访问站点,查看是否启用SM2加密套件。
3. 兼容性处理:双证书部署方案
为兼顾合规性与全球访问兼容性,推荐采用SM2/RSA双证书部署方案。
实现方式:
- 同时在服务器上部署国密SM2证书和RSA证书;
- 利用支持“双栈”的Web服务器中间件(如天威诚信iTrusCloud、江南科友HSM网关等)自动识别客户端类型;
- 当用户使用国密浏览器时返回SM2证书,使用Chrome/Firefox/Safari时返回RSA证书。
此方案已在华测检测等大型企业官网成功应用,既满足《金融和重要领域密码应用与创新发展工作规划(2018-2022年)》政策要求,又保障公众用户的正常访问体验。
[出处:https://www.topssl.cn/article/279]
4. 常见问题与建议
| 问题 | 解决建议 |
|---|---|
| 国密证书无法退款 | 购买前确认技术可行性与部署能力 |
| 微信小程序不支持国密证书 | 必须额外购买一张RSA证书用于小程序接口通信 |
| 普通浏览器无法打开网站 | 需配合RSA证书做双证书切换 |
| 编译失败或模块缺失 | 使用预编译的国密Nginx发行版或容器镜像 |
延伸阅读:
相关产品推荐
| 产品名称 | 参考价格 | 适用场景 |
|---|---|---|
| 华测国密CA SM2 SSL证书 | 3000元 | 适用于需要符合国家密码合规要求的政府、金融、国企单位 |
| 锐安信(vTrus)入门级DV | 65元 | 适用于个人博客或测试环境 |
| Sectigo DV SSL证书 | 297元 | 适用于中小企业官网、展示型网站 |
[出处:https://www.topssl.cn/article/279]
HTTPS合规性要求说明



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
















