通配符证书名称的格式是什么?

What is the format of wildcard certificate name?

我正在编写 SSL 证书的验证,我想知道带有通配符的证书名称的格式。来自 RFC 2818:

Names may contain the wildcard character * which is considered to match any single domain name component or component fragment. E.g., .a.com matches foo.a.com but not bar.foo.a.com. f.com matches foo.com but not bar.com.

通配符可以出现在名字中间吗?我也可以在一个名字中使用其中的几个吗?

hello.*.a.com
*.*.a.com

我知道它可能没有实际用处,但我想知道技术上可行的是什么。

我建议您使用更新的 RFC 6125 而不是 RFC 2818。此 RFC 使通配符处理更加清晰。本质上它意味着:

  • 只有最左边的标签,即 *.example.com 而不是 www.*.com。这隐含地排除了多个通配符,例如 *.*.example.com.
  • 通配符标签只能与单个标签匹配,即 *.example.com 将匹配 www.example.com 但不匹配 sub.www.example.com
  • 如果通配符不是完整标签(即 w*.example.com),它不应出现在 IDNA 标签内。

这就是当今浏览器中实现的内容。除此之外,您会发现更多限制,例如顶级和二级没有通配符(即没有 **.com),有时还有更多限制,例如 *.co.uk 没有通配符。

另请参阅 CAB Baseline Requirements,第 3.2.2.6 节。