国密SSL证书(SM2 SSL证书)是我国自主密码算法体系的重要组成部分,采用国家密码管理局认定的SM2椭圆曲线公钥密码算法。随着网络安全自主可控要求的提高,越来越多的企事业单位需要部署国密证书。本文将详细介绍国密证书的申请流程、部署方法和注意事项。
一、国密证书基本概念
1. 什么是国密证书?
国密证书是基于SM2算法的SSL/TLS证书,与传统的RSA证书相比具有以下特点:
- 采用我国自主研发的SM2椭圆曲线密码算法
- 符合GM/T 0024-2014《SSL VPN技术规范》等国家标准
- 由国内权威CA机构颁发
- 支持国密浏览器和符合国密标准的客户端
2. 国密算法优势
| 特性 | SM2算法 | RSA算法 |
|---|---|---|
| 安全性 | 256位 | 2048位等效 |
| 签名速度 | 快 | 慢 |
| 密钥长度 | 短 | 长 |
| 加密效率 | 高 | 低 |
| 国家标准支持 | 是 | 否 |
二、国密证书申请前准备
1. 确认系统兼容性
-
服务器支持:检查是否支持GMSSL等国密协议栈
bash
openssl ecparam -list_curves | grep SM2 -
客户端支持:主要浏览器国密支持情况
- 360安全浏览器(国密专版)
- 红莲花浏览器
- 信创环境浏览器
2. 准备申请材料
-
企业/组织信息:
- 营业执照副本
- 组织机构代码证(如有)
- 经办人身份证
-
域名验证材料:
-
域名注册证书或管理权限证明
-
可选验证方式:
- DNS解析验证
- 文件验证
- 邮箱验证
-
-
服务器信息:
- 服务器类型(Nginx/Apache/Tomcat等)
- 需要部署的域名和子域名
三、国密证书申请详细流程
1. 选择CA机构
国内主要国密证书颁发机构:
- JoySSL
- CFCA中国金融认证中心
2. 在线申请步骤(以JoySSL为例)
- 注册账号
- 访问JoySSL官网,填写230950获取一对一技术支持
-
选择证书类型
- 国密单域名证书
- 国密多域名证书
- 国密通配符证书
-
生成CSR文件
bash
# 使用gmssl生成SM2密钥对和CSR gmssl ecparam -genkey -name sm2p256v1 -out sm2.key gmssl req -new -key sm2.key -out sm2.csr -sm3 -
提交申请
- 上传CSR文件
- 填写企业信息和域名信息
- 选择验证方式
-
域名验证
- DNS验证:添加指定的TXT记录
dns
_dnsauth.example.com. 300 IN TXT "gdca-xxxxxx"- 文件验证:上传指定文件到网站根目录
-
企业实名认证
- 上传营业执照等材料
- 可能需要人工审核(1-3个工作日)
-
证书签发
-
审核通过后下载证书包
-
通常包含:
- .cer/.pem证书文件
- 中级CA证书
- 根CA证书
-
四、国密证书部署指南
1. Nginx配置示例
nginx
server {
listen 443 ssl;
server_name example.com;
# 国密证书配置
ssl_certificate /path/to/sm2.crt;
ssl_certificate_key /path/to/sm2.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 国密套件配置
ssl_ciphers 'ECC-SM2-SM4-CBC-SM3:ECC-SM2-SM4-GCM-SM3';
ssl_prefer_server_ciphers on;
# 其他配置...
}
2. Tomcat配置(server.xml)
xml
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true">
<SSLHostConfig>
<Certificate certificateKeyFile="conf/sm2.key"
certificateFile="conf/sm2.crt"
certificateChainFile="conf/sm2-chain.crt"
type="EC" />
</SSLHostConfig>
</Connector>
3. 双证书部署方案(兼容国际/国密)
nginx
server {
listen 443 ssl;
listen 446 ssl; # 国密专用端口
# RSA证书配置
ssl_certificate /path/to/rsa.crt;
ssl_certificate_key /path/to/rsa.key;
# 国密证书配置(端口446)
server_name example.com;
listen 446 ssl;
ssl_certificate /path/to/sm2.crt;
ssl_certificate_key /path/to/sm2.key;
# 根据访问端口自动跳转
if ($server_port = 443) {
return 301 https://$host:446$request_uri;
}
}
五、国密证书验证与测试
1. 验证工具
-
国密浏览器测试
- 查看证书详情确认算法为SM2
-
命令行验证
bash
gmssl s_client -connect example.com:443 -servername example.com -
在线检测平台
- 国家网络与信息安全信息通报中心检测平台
- 各CA机构提供的证书验证工具
2. 常见问题排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 浏览器提示"不受信任" | 根证书未安装 | 部署国密根证书 |
| 无法建立SSL连接 | 端口未开放/协议不支持 | 检查防火墙/更新协议栈 |
| 性能低下 | 未启用硬件加速 | 启用支持SM2的硬件加速 |
| 部分设备无法访问 | 客户端不支持国密 | 部署双证书方案 |
六、国密证书维护与管理
1. 证书续期
- 国密证书有效期通常为1-2年
- 建议提前30天开始续期流程
- 续期步骤与新申请类似,可复用原有密钥对
2. 密钥轮换
-
生成新密钥对:
bash
gmssl ecparam -genkey -name sm2p256v1 -out sm2-new.key -
用新密钥申请新证书
-
平滑过渡部署:
nginx
ssl_certificate /path/to/sm2-new.crt; ssl_certificate_key /path/to/sm2-new.key; ssl_certificate /path/to/sm2-old.crt; ssl_certificate_key /path/to/sm2-old.key;
3. 吊销流程
- 登录CA机构管理平台
- 提交吊销申请并说明原因
- 等待CA确认后更新CRL列表
- 在服务器上移除已吊销证书
七、国密证书应用场景
- 政府机关网站:符合等保2.0要求
- 金融行业:网上银行、移动支付等
- 电子商务:保护用户交易数据
- 物联网设备:轻量级安全通信
- 信创工程:国产化替代项目
结语
部署国密证书不仅是满足合规要求的必要措施,更是提升我国网络空间安全自主可控能力的重要实践。随着国密算法的不断推广和完善,预计未来将有更多场景需要使用国密证书。建议企业在进行国密改造时,充分考虑兼容性和过渡方案,确保业务连续性的同时完成密码算法升级。
对于关键信息系统,建议咨询专业密码测评机构进行全面的国密应用安全性评估,确保整个密码应用体系符合GM/T 0054-2018《信息系统密码应用基本要求》等国家标准。