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

生成CSR时OpenSSL req命令报OBJ_create:oid exists错误

解决OpenSSL生成CSR时的OID重复定义错误

嘿,这个错误我之前也碰到过!你遇到的OBJ_create:oid exists问题,核心原因很简单:你在配置里手动声明的2.5.4.97这个OID,已经是OpenSSL内置的标准OID了,根本不需要你重新定义。

问题根源拆解

2.5.4.97对应的是标准属性organizationIdentifier(组织标识符),OpenSSL的默认对象数据库里早就收录了这个OID。当你在[OIDs]段尝试重新创建它时,就会触发“OID已存在”的冲突报错。而你改成1.2.3.4能成功,是因为这个是未被注册的私有OID,OpenSSL里没有预定义,所以可以正常创建。

修正后的配置方案

你有两种简单的修复方式:

方案1:直接使用标准属性名

既然OpenSSL已经认识这个OID,直接在[dn]段用标准属性名organizationIdentifier即可,完全不需要[OIDs]段的声明:

[ req ]
distinguished_name = dn
prompt = no
[ dn ]
O=Enable Banking Oy
L=Espoo
C=FI
organizationIdentifier=PSDFI-FINFSA-29884997
CN=enablebanking.com

方案2:给内置OID起别名

如果你习惯用自己的OrganizationID作为属性名,可以在[OIDs]段把它映射到已存在的标准OID,而不是重新定义OID值:

oid_section = OIDs
[ req ]
distinguished_name = dn
prompt = no
[ OIDs ]
OrganizationID=organizationIdentifier
[ dn ]
O=Enable Banking Oy
L=Espoo
C=FI
OrganizationID=PSDFI-FINFSA-29884997
CN=enablebanking.com

验证方法

你可以用这个命令确认2.5.4.97确实是内置OID:

openssl oid -v 2.5.4.97

运行后会显示类似这样的输出,证明它已经被OpenSSL预定义了:

2.5.4.97: 'organizationIdentifier'

用修正后的配置再执行你的生成命令:

openssl req -new -config eidas.conf -keyout eidas.key -out eidas.csr

这次应该就能成功生成CSR和密钥了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:32:34