Openssl 使用属性“创建CSR时出错”;";及;uidNumber“;在主题中

Openssl 使用属性“创建CSR时出错”;";及;uidNumber“;在主题中,openssl,x509,Openssl,X509,对于我们将要在工作中进行的集成,我们需要向当地政府组织提供一个证书签名请求文件。此本地公司在生成CSR文件时需要在主题中具有以下属性: CN=data/O=data/OU=data/T=data/C=AU/dnQualifier=data/uidNumber=data/uid=data/serialNumber=data/emailAddress=john@example.com 当我使用以下命令使用OpenSSL生成CSR文件时: $ openssl req -new -key exampl

对于我们将要在工作中进行的集成,我们需要向当地政府组织提供一个证书签名请求文件。此本地公司在生成CSR文件时需要在主题中具有以下属性:

CN=data/O=data/OU=data/T=data/C=AU/dnQualifier=data/uidNumber=data/uid=data/serialNumber=data/emailAddress=john@example.com
当我使用以下命令使用OpenSSL生成CSR文件时:

$ openssl req -new -key example.pem -out example.csr -subj "{the above subject}"
我得到下一个错误:

req: Skipping unknown attribute "T"                                     
req: Skipping unknown attribute "uidNumber"    
我在Debian9.5和Ubuntu18.04上试过,结果都是一样的

在调查之后,我在
/etc/ssl/openssl.cfg
文件中添加了新的OID:

[ new_oids ]
uidNumber = 1.2.3.4
T = 1.2.3.4.2
最后,它毫无问题地产生了

在使用以下各项验证CSR文件时,我能够看到主题中的
T
uidNumber
属性:

$ openssl req -in example.csr -noout -text
虽然我通过更新OpenSSL配置文件获得了主题中的属性,但我确实不确定定义它们时使用的
1.2.3.4
1.2.3.4.2
值的含义(我只是按照文件中注释示例的模式)。这些值是否会影响我将要使用的CSR文件,尽管属性按预期显示

我真的很感谢你的帮助

我真的不确定
1.2.3.4
1.2.3.4.2
值I的含义 在定义它们时使用

通常,这些OID的含义为所有相关方所理解。通常,它们的价值和意义在某个已知的地方发布。一个方便的网站是。您选择的OID没有已知的含义

这些值会影响我将要使用的CSR文件吗 属性是否如预期的那样存在

是的,OID将是PEM或DER编码的CSR的一部分,并由接收方用于解析文件。事实上,只包括OID,而不包括属性本身的名称。选择OID后,接收器将无法理解相关值的含义。所以,您应该确保选择和属性的预期含义相匹配的OID值

T
属性可能指的是,可以使用短名称
T
。这个简短的名称似乎没有标准化,但请参见章节
6.4.3 title
,其中提到了
T=“管理器,分布式应用程序”

uidNumber
属性可能指的是


但是,与其事后猜测编写您正在使用的规范的人的意图,不如请求向其添加OID,最好是针对所有属性。这样,所有各方都确切地知道预期的属性OID是什么,以及如何解释相关的值。

非常感谢Reinier,我完全不知道这些值的含义。这真是个好消息。