假定SSL证书的使用者备用名称(SAN)属性包含两个DNS名称
domain.tld
host.domain.tld
但是“通用名称(CN)”仅设置为以下两者之一:
CN=domain.tld
。host.domain.tld
,则在服务器端会发生什么? 具体来说,OpenSSL 0.9.8b +如何处理给定方案?
最佳答案
这取决于实现方式,但是一般规则是针对所有SAN和通用名称检查域。如果在该域中找到该域,则该证书可以用于连接。
RFC 5280在4.1.2.6节中说:“主题名称可以在主题字段和/或subjectAltName扩展名中携带”。这意味着必须同时对域名和证书的SubjectAltName扩展名和Subject属性(即通用名称参数)进行检查。这两个地方是互补的,而不是重复。而且SubjectAltName是放置其他名称的适当位置,例如www.domain.com或www2.domain.com
更新:根据RFC 6125于2011年发布,验证器必须首先检查SAN,如果SAN存在,则不应检查CN。请注意,RFC 6125是相对较新的,并且仍然存在颁发证书的证书和CA,其中包括CN中的“主要”域名和SAN中的备用域名。即如果存在SAN,则通过将CN从验证中排除,可以拒绝其他有效证书。
关于ssl - 公用名(CN)和主题备用名(SAN)如何一起工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5935369/