如何申请国密证书

269 阅读5分钟

国密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. 准备申请材料

  1. 企业/组织信息

    • 营业执照副本
    • 组织机构代码证(如有)
    • 经办人身份证
  2. 域名验证材料

    • 域名注册证书或管理权限证明

    • 可选验证方式:

      • DNS解析验证
      • 文件验证
      • 邮箱验证
  3. 服务器信息

    • 服务器类型(Nginx/Apache/Tomcat等)
    • 需要部署的域名和子域名

三、国密证书申请详细流程

1. 选择CA机构

国内主要国密证书颁发机构:

  • JoySSL
  • CFCA中国金融认证中心

2. 在线申请步骤(以JoySSL为例)

  1. 注册账号

- 访问JoySSL官网,填写230950获取一对一技术支持

ssl5.jpg

  1. 选择证书类型

    • 国密单域名证书
    • 国密多域名证书
    • 国密通配符证书
  2. 生成CSR文件

    bash

    # 使用gmssl生成SM2密钥对和CSR
    gmssl ecparam -genkey -name sm2p256v1 -out sm2.key
    gmssl req -new -key sm2.key -out sm2.csr -sm3
    
  3. 提交申请

    • 上传CSR文件
    • 填写企业信息和域名信息
    • 选择验证方式
  4. 域名验证

    • DNS验证:添加指定的TXT记录

    dns

    _dnsauth.example.com. 300 IN TXT "gdca-xxxxxx"
    
    • 文件验证:上传指定文件到网站根目录
  5. 企业实名认证

    • 上传营业执照等材料
    • 可能需要人工审核(1-3个工作日)
  6. 证书签发

    • 审核通过后下载证书包

    • 通常包含:

      • .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. 验证工具

  1. 国密浏览器测试

    • 查看证书详情确认算法为SM2
  2. 命令行验证

    bash

    gmssl s_client -connect example.com:443 -servername example.com
    
  3. 在线检测平台

    • 国家网络与信息安全信息通报中心检测平台
    • 各CA机构提供的证书验证工具

2. 常见问题排查

问题现象可能原因解决方案
浏览器提示"不受信任"根证书未安装部署国密根证书
无法建立SSL连接端口未开放/协议不支持检查防火墙/更新协议栈
性能低下未启用硬件加速启用支持SM2的硬件加速
部分设备无法访问客户端不支持国密部署双证书方案

六、国密证书维护与管理

1. 证书续期

  • 国密证书有效期通常为1-2年
  • 建议提前30天开始续期流程
  • 续期步骤与新申请类似,可复用原有密钥对

2. 密钥轮换

  1. 生成新密钥对:

    bash

    gmssl ecparam -genkey -name sm2p256v1 -out sm2-new.key
    
  2. 用新密钥申请新证书

  3. 平滑过渡部署:

    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. 吊销流程

  1. 登录CA机构管理平台
  2. 提交吊销申请并说明原因
  3. 等待CA确认后更新CRL列表
  4. 在服务器上移除已吊销证书

七、国密证书应用场景

  1. 政府机关网站:符合等保2.0要求
  2. 金融行业:网上银行、移动支付等
  3. 电子商务:保护用户交易数据
  4. 物联网设备:轻量级安全通信
  5. 信创工程:国产化替代项目

结语

部署国密证书不仅是满足合规要求的必要措施,更是提升我国网络空间安全自主可控能力的重要实践。随着国密算法的不断推广和完善,预计未来将有更多场景需要使用国密证书。建议企业在进行国密改造时,充分考虑兼容性和过渡方案,确保业务连续性的同时完成密码算法升级。

对于关键信息系统,建议咨询专业密码测评机构进行全面的国密应用安全性评估,确保整个密码应用体系符合GM/T 0054-2018《信息系统密码应用基本要求》等国家标准。