国密证书请求文件(CSR/P10)关键字段配置技术指导如下:

一、概述

国密证书请求文件遵循  GM/T  0092-2020《基于SM2算法的证书申请语法规范》  ,定义了使用SM2密码算法的证书申请语法、证书申请信息的扩展属性和证书响应格式。证书申请由证书申请信息(含主体名称、主体公钥信息、一组可选属性集)、数字签名算法和对证书申请信息的数字签名三部分组成。

国密证书的最终格式遵循  GM/T  0015-2023《数字证书格式》  (替代GM/T  0015-2012),规定了数字证书的基本结构及各数据项内容。以下围绕这两份核心标准,梳理CSR生成时需正确配置的各类字段。

二、CSR生成前的准备工作

1.  密钥算法选择

生成CSR前,必须先确定密钥算法类型。国密证书必须使用SM2算法,在生成CSR时公钥类型应选择  SM2(部分工具或接口中称为TPM_ALG_SM2)。SM2算法使用256位密钥。

2.  工具选择

建议使用支持国密算法的专用工具,如GmSSL(OpenSSL的国密改进版)等。常用生成命令示例:

bash

#  生成SM2私钥

gmssl  sm2keygen  -pass  <password>  -out  <filename>.key

#  通过私钥生成P10请求

gmssl  reqgen  -C  CN  -L  上海市  -ST  上海市  -O  XXXX有限公司  -OU  XXX部  -CN  XXXX  -key  <sm2_name>.key  -pass  <your_password>  -out  p10.key

三、主体名称(Subject  DN)字段填写规范

1.  CN(Common  Name,公共名称)

OID:2.5.4.3

格式:字符串,最大长度通常为64字符

填写规范:

SSL/TLS服务器证书:必须填写网站域名(如  `www.example.com`)或通配符域名(如  `*.example.com`)

客户端证书:填写证书申请者的姓名或设备标识

代码签名证书:填写申请单位名称

注意事项:根据国际和国密标准要求,域名验证应以Subject  Alternative  Name(SAN)为首选方式,CN字段已逐步被弃用,但SSL证书中仍建议同时填写CN和SAN

2.  C(Country,国家)

OID:2.5.4.6

格式:2个大写字母

填写规范:严格限制为2个大写字母的国家代码。正确示例:中国填写`CN`;错误示例:`China`、`CHN`

3.  ST(State/Province,省份/自治州)

OID:2.5.4.8

格式:字符串

填写规范:填写申请单位所在省、自治区或直辖市的全称,如`上海市`、`北京市`

4.  L(Locality,城市)

OID:2.5.4.7

格式:字符串

填写规范:填写申请单位所在城市的官方名称,如`上海市`

5.  O(Organization,组织名称)

OID:2.5.4.10

格式:字符串,最大长度通常为64字符

填写规范:填写申请单位的工商注册全称,需与营业执照保持一致

6.  OU(Organizational  Unit,部门名称)

OID:2.5.4.11

格式:字符串

填写规范:填写申请单位内部的具体部门名称,如`技术部`、`XXX部`,为可选项

7.  E(Email,电子邮件地址)

OID:1.2.840.113549.1.9.1

格式:标准电子邮件地址

填写规范:用于证书申请相关的联系邮箱,为可选项

完整DN示例

C=CN,  ST=上海市,  L=上海市,  O=XX科技有限公司,  OU=技术部,  CN=www.example.com

四、证书扩展项(Extensions)配置规范

证书扩展项是GM/T  0015-2023中的核心内容,由扩展标识符(OID)、关键度(TRUE/FALSE)和扩展值三部分组成。

1.  KeyUsage(密钥用法)

OID:2.5.29.15

关键性:如果标记为关键,证书必须严格用于指定用途

填写规范:

证书类型     应标记的KeyUsage  

签名证书          digitalSignature(数字签名)、nonRepudiation(防抵赖)  

加密证书          keyEncipherment(密钥加密)、dataEncipherment(数据加密)、keyAgreement(密钥协商)  

CA证书          keyCertSign(证书签名)、cRLSign(CRL签名)  

特别说明(双证书体系)  :国密体系采用“双证书”机制——每张国密SSL证书实际上由两张证书组成:签名证书和加密证书。两者的区别正是看证书内KeyUsage扩展字段的取值。在生成CSR前,应明确本次申请的是签名证书还是加密证书,并据此配置对应的KeyUsage。

2.  Extended  KeyUsage(扩展密钥用法)

OID:2.5.29.37

填写规范:若存在EKU,其用途不能与KeyUsage扩展项中的定义发生冲突

常见EKU用途:

服务器身份验证(serverAuth,OID:1.3.6.1.5.5.7.3.1)

客户端身份验证(clientAuth,OID:1.3.6.1.5.5.7.3.2)

代码签名(codeSigning,OID:1.3.6.1.5.5.7.3.3)

3.  Subject  Alternative  Name(SAN,主体可选名称)

OID:2.5.29.17

关键性:通常为非关键扩展

填写规范:

      对于SSL/TLS证书,SAN是  必须包含的重要扩展

      SAN中必须包含CN字段中的域名或IP地址

      可写入多个域名、电子邮件地址、IP地址等信息

      支持通配符域名

4.  Authority  Key  Identifier(颁发机构密钥标识符)


OID:2.5.29.35

关键性:标记为非关键

填写规范:除自签名证书外,所有证书应包含此扩展。keyIdentifier应从公钥推导,例如使用SM3杂凑值

5.  Subject  Key  Identifier(主体密钥标识符)

OID:2.5.29.14

填写规范:证书中应存在这一扩展,其值与证书使用者的公钥计算结果一致

6.  Basic  Constraints(基本限制)

OID:2.5.29.19

填写规范:

      终端实体证书:cA字段应为FALSE

      CA证书:cA字段应为TRUE,可选的pathLenConstraint限制证书路径长度

7.  CRL  Distribution  Points(CRL发布点

OID:2.5.29.31

填写规范:必须存在此扩展,以便从指定的URL下载证书撤销列表CRL

8.  Authority  Info  Access(AIA,授权信息访问)

OID:1.3.6.1.5.5.7.1.1

填写规范:提供证书签发者信息访问网址,用于获取签发者证书以验证用户证书,必须确保AIA网址可正常访问,且只能是HTTP方式访问,不能是HTTPS

五、算法与OID标识规范

核心OID标识

根据GB/T  33560-2017《信息安全技术  密码应用标识规范》,关键OID如下:

算法/标识      OID  

SM2签名算法(SM3WithSM2Encryption)      1.2.156.10197.1.501  

SM2加密方案      1.2.156.10197.1.301  

SM3杂凑算法      1.2.156.10197.1.401  

签名算法配置

使用SM2算法时,AlgorithmIdentifier的parameters字段  必须缺失(MUST  be  absent)  。

CSR格式说明

虽然PKCS#10(P10请求)格式本身不直接包含OID配置功能,但在申请过程中需要配置签名算法为SM3withSM2(OID  1.2.156.10197.1.501),以便CA正确识别和处理证书申请。

六、特殊配置与注意事项

1.  GM/T  0092-2020附加属性

根据GM/T  0092-2020,证书申请信息中包含一组可选属性集,包括对challengePassword、certificationRequestInfo等对象的OID定义。申请时可按需配置相关属性。

2.  编码规则

国密证书遵循GB/T  16262.1的DER编码规则进行编码。特别注意证书有效期编码规则:2049年及之前使用UTCTime(YYMMDDHHMMSSZ格式),2050年及之后使用GeneralizedTime(YYYYMMDDHHMMSSZ格式)。

3.  证书链完整性

申请证书时,CA机构通常会返回以下文件:

  签名证书(根据CSR申请的证书)

  加密证书(国密双证书体系中的加密证书)

  加密私钥

  上级根证书和中级CA证书(用于证书链构建)

应确保将这些文件完整配置到服务端,形成一个完整的信任链,以支持国密SSL/TLS的安全通信。

七、常见问题与检查清单

检查项      规范要求  

密钥算法      必须为SM2(256位),不得使用RSA或ECC  

国家代码(C)      2个大写字母,中国填写CN  

CN字段      SSL证书必须填写完整域名  

SAN字段      SSL证书必须包含,且包含CN中的域名  

KeyUsage      签名证书:digitalSignature+nonRepudiation;加密证书:keyEncipherment+dataEncipherment+keyAgreement  

签名算法标识      SM3WithSM2,parameters字段必须为空  

编码格式      DER编码  

报告效期编码      严格遵循UTC/GMT格式规范  

CRL/AIA      必须包含可访问的CRL发布点和AIA信息  

以上配置规范基于GM/T  0092-2020、GM/T  0015-2023及相关国密标准编制,实际操作时应以CA机构的具体要求和最新版国家标准为准。如需各标准PDF完整原文,可访问国家密码管理局官网(www.oscca.gov.cn)或密码行业标准化技术委员会官网(www.gmbz.org.cn)下载。