You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用config.cnf通过OpenSSL创建CSR时遇错误求助

问题解决:ZATCA电子发票CSR生成错误修正

错误原因分析

从报错信息来看,核心问题集中在三点:

  1. 配置文件使用了OpenSSL无法识别的非标准X.509字段名(如registerAddress、SN、UID)。
  2. 存在哈希算法拼写错误(default_md =sha26应为sha256)。
  3. req段重复定义req_extensions,导致配置冲突。

修改后的config.cnf配置文件

oid_section = OIDs
[OIDs]
certificateTemplateName = 1.3.6.1.4.1.311.20.2

[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[dn]
C = SA
OU = Ryiad Branch
O = Jarir
CN = 127.0.0.1
emailAddress = faheemkurikkal.mp@gmail.com

[v3_req]
basicConstraints = CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment

[req_ext]
certificateTemplateName = ASN1:PRINTABLESTRING:ZATCA-Code-Signing
subjectAltName = dirName:alt_names

[alt_names]
serialNumber = 1-AcmeInc|2-EGSUnit|3-123456789
userid = 310122393500003
title = 1100
streetAddress = MyAddress
businessCategory = Acme Industry

关键修改点说明

  • 修正哈希算法:将sha26改为OpenSSL支持的标准哈希算法sha256。
  • 清理重复配置:删除req段中重复的req_extensions = v3_req,保留req_extensions = req_ext以指定自定义扩展段。
  • 替换非标准字段:把alt_names中的自定义字段替换为OpenSSL可识别的标准X.509属性:
    • SN → serialNumber(对应OID 2.5.4.5,标准序列号字段)
    • UID → userid(对应OID 0.9.2342.19200300.100.1.1,标准用户ID字段)
    • registerAddress → streetAddress(对应OID 2.5.4.7,标准街道地址字段)
  • 修正邮箱配置:将邮箱拼写错误gmail.common改为gmail.com,并移至dn段(X.509证书主题的标准位置)。

生成CSR的命令

使用修改后的配置文件执行以下命令生成CSR:

openssl req -new -key your_private_key.key -out zatca_csr.csr -config config.cnf

注意:如果ZATCA要求使用特定自定义OID而非标准字段,请参考ZATCA官方文档获取对应OID,在OIDs段中定义后即可直接使用自定义字段名(例如:registerAddress = 1.2.3.4.5.6)。

内容的提问来源于stack exchange,提问作者FaheemMCFC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:27:36