国密SM2双证书体系的核心,是将传统单证书的身份认证与密钥协商功能分离。因此,其文件组成也遵循这一设计,通常包含4个核心文件,分别对应签名和加密两套独立的密钥

一、核心文件组成

      签名证书(公钥):文件通常命名为  `domain.com_sign.crt`  或  `domain.com_sign_chain.crt`。其核心作用为身份验证与抗抵赖,确保通信对方身份的真实性,并对数据进行数字签名。

      签名私钥(密钥):文件通常命名为  `domain.com_sign.key`  或  `domain.com.key`。其核心作用为数字签名生成,与签名证书配对使用,用于生成数字签名,必须严格保密,仅由持有者保管。

      加密证书(公钥):文件通常命名为  `domain.com_encrypt.crt`  或  `domain.com_encrypt_chain.crt`。其核心作用为密钥交换与数据加密,用于建立加密通道时协商会话密钥,或加密传输数据。

      加密私钥(密钥):文件通常命名为  `domain.com_encrypt.key`  或  `domain.com.key`。其核心作用为数据解密,与加密证书配对使用,用于解密加密数据。注意:  与签名私钥不同,加密私钥在一些合规场景下可能需要备份给监管机构。

二、命名与格式

      命名规则:文件名是示例性的,实际名称通常与申请证书时提交的域名或IP地址相关。你可能会看到  `www.example.com_sign.crt`  这样的命名。

      文件格式:国密SM2证书主要采用  PEM  (Privacy  Enhanced  Mail)**  格式。这是一种文本格式,其内容以  `-----BEGIN  CERTIFICATE-----`  开头,以  `-----END  CERTIFICATE-----`  结尾。私钥文件则以  `-----BEGIN  EC  PRIVATE  KEY-----`  开头。

三、部署注意事项

      私钥配对:一个常见的特殊设计是,签名证书和加密证书有时会共用同一个私钥文件。这并非通用规则,但在一些实现中确实存在,部署时需特别注意。

      服务器支持:部署国密SM2证书,通常需要使用支持国密算法的特殊版本Web服务器,如国密版Nginx、Tengine等。标准版Nginx默认不支持SM2算法。

      配置要点:在服务器配置中,需要分别指定签名证书和加密证书的路径。

总而言之,国密SM2双证书体系通过“签名”与“加密”功能的分离,实现了更精细的密钥管理。这4个核心文件共同构成了这一安全体系的基础。