SAN 扩展中的通配符证书限制是什么?

信息安全 tls 证书
2021-08-19 06:59:36

考虑以下示例:

我们创建了自己的 CA 证书(自签名)并导入浏览器信任库。我们通过此 CA 证书签署了具有 SAN 扩展名的证书,并具有以下域:

  • DNS:*.dev
  • DNS:*.*.dev

无论证书中是否存在 CN,甚至是否缺少整个 DN。访问域https://test.dev时仍然在浏览器中出现以下错误

火狐 45.8.0:

test.dev uses an invalid security certificate. The certificate is only valid for the following names: *.dev, *.*.dev Error code: SSL_ERROR_BAD_CERT_DOMAIN

Chrome 58.0.3029.81(64 位):

NET::ERR_CERT_COMMON_NAME_INVALID

当浏览器接受连接时,SAN 中只有一个适用于三级域的通配符:

  • DNS:*.secondlevel.dev

浏览器不接受 SAN 中的多级通配符:

  • DNS:*.*.secondlevel.dev

有没有办法在 SAN 扩展中使用多级通配符,或者 SAN 扩展中的通配符有什么限制?

1个回答

来自RFC 6125

客户端不应尝试匹配其中通配符包含除最左侧标签以外的标签的呈现标识符(例如,不匹配 bar.*.example.net)。

因此,通配符只允许在最左边的标签中使用,这会自动将其限制为最多一级通配符。

类似的限制也可以在CA/Browser Forum Baseline Requirements 1.4.2中找到,它与文档中的其他定义相结合,将通配符限制为仅最左侧的标签:

通配符证书:
在证书中包含的任何主题完全限定域名的最左侧位置包含星号 (*) 的证书。

除此之外,CA/浏览器论坛基线要求有更多限制,导致*.dev无法正常工作,因为dev它在公共后缀列表中

CA 应撤销任何在“注册表控制”标签或“公共后缀”左侧的第一个标签位置出现通配符的证书。

有关详细信息,请参阅基线要求的“3.2.2.6 通配符域验证”部分。