据我所知,此信息存储在SubjectX509v3 Subject Alternative Name字段中。不仅如此(openssl x509 -text -in example.com.crt):

Subject: description=MnUfE9G..., C=UA, CN=sub.example.com/[email protected]
X509v3 Subject Alternative Name:
    DNS:sub.example.com, DNS:example.com


这些descriptionCCNDNS是什么?哪些标准控制字段的格式?

最佳答案

我怎么知道ssl证书颁发给哪个域?


这在RFC 2818 (Section 3.1)(对于HTTPS)和RFC 6125(更普遍)中指定。

简而言之:


如果有任何“使用者备用名称”条目,则证书将对其中任何一个有效。 (“如果存在类型为dNSName的subjectAltName扩展名,则必须将该扩展名用作标识。”)
如果没有SAN DNS条目,则“必须使用证书的主题字段中的(最特定的)公用名字段”。 (根据RFC 2818)。

“公用名”是主题专有名称中的CN(在您的示例中为“ description=MnUfE9G..., C=UA, CN=sub.example.com/[email protected]”)。

(请注意,定义“最具体的” CN是什么(如果存在多个)有点含糊,这是RFC 6125解决的要点之一。)


编辑:


  这些描述,C,CN,DNS内容是什么?哪些标准控制字段的格式?


关于内容,正如@AlexW所说,这部分来自X.509标准,如果您对其格式感兴趣的话,它也依赖X.500 / X.501。

他们的意思是一个稍微不同的问题。其中一些与PKIX Specification (RFC 5280, or 3280)中的名称和策略约束有关,但主要是与CA设置的管理策略有关。
在某种程度上,这些文件比纯技术文件更具行政性和法律性。

Symantec Trust Network Certificate Policies (Verisign)有其自己的描述。应该关注第3节(“标识和验证”)。每个CA都有自己的CA,但是在实践中某些方面趋于统一。

实际含义取决于浏览器实际上如何构成这些字段。除了CN(和SAN),并不总是有明确的技术解释。例如,有一个long running Firefox issue about what to do with the O= (organisation) RDN

在此之上的另一层是来自CA/Browser forum,特别是EV Certificate guidelines的规范。在这种情况下,O= RDN将具有明确定义的含义(使用EV证书时,绿色栏中的内容)。

关于ssl - 我怎么知道ssl证书颁发给哪个域?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23137145/

10-15 13:20