使用属性创建CSR时出错:主题中的“T”和“uidNumber”

问题描述 投票:1回答:1

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

CN=data/O=data/OU=data/T=data/C=AU/dnQualifier=data/uidNumber=data/uid=data/serialNumber=data/[email protected]

当我使用以下命令使用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"    

我在Debian 9.5和Ubuntu 18.04上尝试了相同的结果。

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

[ new_oids ]
uidNumber = 1.2.3.4
T = 1.2.3.4.2

最后它生成没有问题。

在验证CSR文件时,我能够在主题中看到TuidNumber属性:

$ openssl req -in example.csr -noout -text

虽然我通过更新OpenSSL配置文件获得了主题中的属性,但我真的不确定1.2.3.41.2.3.4.2值在定义时使用的含义(我只是遵循文件中注释示例的模式)。这些值是否会影响我将要使用的CSR文件,尽管属性按预期存在?

我非常感谢你的帮助。

openssl x509
1个回答
2
投票

我真的不确定我在定义时使用的1.2.3.41.2.3.4.2值的含义

通常,这些OID具有所有相关方都理解的含义。通常,它们的值和含义在一些已知的地方公布。一个方便的网站来查找它们是this OID repository。您选择的OID没有已知含义。

这些值是否会影响我将要使用的CSR文件,尽管属性按预期存在?

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

T属性可能是指title with OID 2.5.4.12,可以使用短名称T。这个简短的名字似乎没有标准化,但请参阅ITU X.520 spec部分6.4.3 title,其中提到T = "Manager, Distributed Applications"作为一个例子。

uidNumber属性可能指的是OID 1.3.6.1.1.1.1.0

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

© www.soinside.com 2019 - 2024. All rights reserved.