网站升级至 ECC+SM2 国密 SSL 证书指南
要将网站从 Google SSL 证书升级为支持 ECC+SM2 国密算法,并在零信浏览器上正常显示,需要完成以下关键步骤:
一、证书申请与准备
选择支持双算法的 CA 机构
推荐选择通过国家密码管理局认证的国内 CA 机构,如 JoySSL、沃通 WoTrus 或天威诚信,这些机构支持同时签发国际算法 (RSA/ECC) 和国密算法 (SM2) 证书
根据需求选择证书类型:DV(域名验证)、OV(组织验证) 或 EV(扩展验证)
生成密钥对与 CSR 文件
国际算法部分:使用 OpenSSL 生成 RSA 或 ECC 密钥对和 CSR 文件
# RSA密钥对生成 openssl genrsa -out rsa_private.key 2048 openssl req -new -key rsa_private.key -out rsa.csr # ECC密钥对生成 openssl ecparam -genkey -name prime256v1 -out ecc_private.key openssl req -new -key ecc_private.key -out ecc.csr国密算法部分:使用 GMSSL 工具包生成 SM2 密钥对和 CSR 文件
gmssl ecparam -genkey -name sm2p256v1 -out sm2_private.key gmssl req -new -key sm2_private.key -out sm2.csr -sm3完成验证并下载证书包
完成域名验证 (DNS、文件或 IP 验证)
下载证书包,通常包含:
.crt(国际算法证书).sm2(国密算法证书)中间证书链 (用于浏览器信任链补全)
二、服务器配置
Nginx 服务器配置示例
server { listen 443 ssl; server_name example.com; # 国际算法配置 ssl_certificate /path/to/international.crt; ssl_certificate_key /path/to/international.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:..."; # 国密算法配置(需Nginx 1.25.0+及GMSSL模块) listen 443 gmssl; ssl_certificate /path/to/sm2.crt; ssl_certificate_key /path/to/sm2.key; ssl_protocols GMSSL; # 推荐密码套件 ssl_ciphers "ECDHE_SM2_WITH_SM4_128_CBC_SM3"; }如果无法同时监听 443 端口,可采用双端口方案 (如 443-TLS/9443-GMSSL)
启用 SSL 卸载功能
在 SSL 模板中启用 SSL 卸载功能
选择国密 SSL 协议,启用双向认证 (如需)
密码套件选择
ECDHE-SM4_128_CBC_SM3
三、零信浏览器兼容性配置
确保证书链完整
国密 SSL 证书必须包含完整的证书链,包括中间证书和根证书
检查证书中的 AIA(授权信息访问) 字段,确保可访问且包含正确的签发 CA 证书信息
证书字段要求
必须包含 "证书策略"(Certificate Policy) 字段,说明签发依据
密钥用法 (Key Usage) 必须正确设置:签名证书为 "Digital Signature",加密证书为 "Key Encipherment"
增强密钥用法 (Extended Key Usage) 必须包含 "服务器身份验证"(1.3.6.1.5.5.7.3.1)
测试验证
使用零信国密浏览器访问网站,检查是否显示国密加密标识
验证国际算法部分是否仍能在 Chrome、Firefox 等主流浏览器中正常显示
四、运维与安全最佳实践
证书生命周期管理
设置证书到期前 30 天提醒,启动续期流程
考虑使用 ACME 协议或 CA 机构 API 实现证书自动更新
性能监控与优化
使用 Prometheus+Grafana 监控 TLS 握手耗时
在高并发场景下优先使用 ECC/SM2 算法,可较 RSA 节省 30%CPU 资源
安全加固措施
禁用弱密码套件 (如 RC4、DES)
启用 OCSP Stapling 减少证书状态查询延迟
定期检查证书透明日志,确保证书签发行为合规
五、常见问题解决方案
浏览器不信任国密证书
原因:部分浏览器未内置国密根证书
解决方案:
引导用户安装 CA 机构根证书
同时部署国际算法作为降级方案
推荐用户使用预置国密根证书的浏览器 (如零信浏览器、360 安全浏览器国密版)
内网环境部署
内网 IP 证书签发:选择支持内网场景的 CA 机构 (如 JoySSL 企业版)
内网浏览器信任:部署零信浏览器,已预置信任内网专用国密 SM2 根证书
兼容性问题
现象:服务器无法同时监听 443 端口 (TLS 与 GMSSL 冲突)
解决方案:
采用双端口方案 (如 443-TLS/9443-GMSSL)
升级至支持协议复用的服务器版本
通过以上步骤,您的网站可以顺利完成从 Google SSL 证书到 ECC+SM2 国密证书的升级,并确保在零信浏览器等国密浏览器中正常显示加密标识。这一升级不仅符合国家密码法规要求,还能提供更高的安全性和更好的性能表现。
其实吧,上面的是教程。但是我不是这样能的哦。
我是直接腾讯云 EO 同时上传了 ECC 证书和 SM2 证书,然后同时启用的。然后在白山云也是这样操作的哈,所以现在也是双证书,并且还有认证。这已经是最快的方法了。下面是显示的效果图。当然你按照上面的方法也可以,不过就是麻烦,并且还有各种问题。

