x509证书中主题属性的顺序

6

在主题属性C、ST、L、O、OU、CN中有特定的顺序吗?openssl似乎不强制执行顺序。

在生成专属名称时,我们是否要选择证书中配置的所有主题属性?这些属性的排序是否重要?

2个回答

5
在理论上,这并不重要,但在实践中,如果父证书主题中的令牌顺序与子证书颁发者字段中的令牌顺序不同,则某些加密库可能无法构建链。如果您不想遇到任何奇怪的问题,它们应该完全相同。例如,即使是 Windows 10 工具 (mmc) 如果主题/颁发者字段中的令牌顺序不同,也不能正确显示链。

2
与Java相同。在sun.security.pkcs12.PKCS12KeyStore中,如果主题(-string)或颁发者(-string)以不同的顺序编码实际属性,则链验证将失败。 - Kai Huppmann

4
我不知道有没有特定的顺序来指定主题属性-C、ST、L、O、OU、CN,您指定的顺序将用于生成DN,即PKCS#10请求中。就我所知,没有规定顺序。
在生成专有名称时,我们选择配置在证书中的所有主题属性吗?CA可能会(且很可能会)使用您的PKCS#10请求中的DN来签发证书,但它可以决定采用不同的顺序。一些RDN(相对专有名称)可以移至扩展中,例如电子邮件地址或在颁发SSL服务器证书时将其复制到扩展名(如CN到SubjectAlternativeName)。
我的观点是,顺序问题并不重要。它可能对某些使用证书的应用程序有影响,但总体上顺序并不重要。

2
这里是一篇关于该问题的文章。简而言之:顺序很重要:https://frasertweedale.github.io/blog-redhat/posts/2019-05-28-a-dn-is-not-a-string.html - Jens Baitinger
1
根据IETF RFC 5280第7.1节,顺序很重要。如果两个显著名称(DN)DN1和DN2具有相同数量的RDN,那么它们匹配;对于DN1中的每个RDN,DN2中存在一个与之匹配的RDN,并且匹配的RDNs在两个DN中以相同的顺序出现。https://www.rfc-editor.org/rfc/rfc5280#section-7.1 - Cheeso
@Cheeso 这是一个非常重要的注意事项,但主要适用于在证书之间比较颁发机构名称时。例如,在叶子证书中,主题名称可能并不那么重要。这对于颁发机构来说更为重要... - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接