我们有一个通配符 SSL 证书的 *.domain.example,并有一个网站与 sub1.sub2.domain.example。
*.domain.example
sub1.sub2.domain.example
MacOS 上的 Safari 4.0.4会弹出一个证书错误(可能是因为通配符解释) ,而 Windows 上的 Safari 4则不会。
而且 IE8的行为充其量是混合的,一些 IE8显示证书错误,一些没有。
是什么导致了 Safari 和 IE 上这种奇怪的行为?
通配符只应用于域的第一部分(从左边开始)。所以你需要一个 *.sub2.domain.example的证书
*.sub2.domain.example
如果你的意思是你有 sub1.domain.example和 sub2.domain.example,那么它应该工作。
sub1.domain.example
sub2.domain.example
*.example.net的通配符 SSL 证书将与 sub.example.net匹配,但与 sub.sub.example.net不匹配。
*.example.net
sub.example.net
sub.sub.example.net
来自 RFC 2818:
指定的匹配规则执行匹配 RFC2459 证书(例如,多个 dNSName 名称,任何一个名称中的匹配项 名称可以包含通配符 字符 *,它被认为是匹配任何单个域名 例如,*.a.example与 foo.a.example匹配,但是 不是 bar.foo.a.example。 f*.example匹配 foo.example但不匹配 bar.example。
*
*.a.example
foo.a.example
bar.foo.a.example
f*.example
foo.example
bar.example
如果您需要一个包含 *.domain.example站点的通配符证书,并且还可以使用 sub1.sub2.domain.example或其他类似于 *.domain2.example的域,那么您可以使用一个通配符证书来解决这个问题,这个通配符证书对于其他每个子域都有一个所谓的主题替代名称(Subject Alternative name,SAN)扩展。SAN 证书不仅适用于多个特定的主机名,还可以为通配符条目创建它。
*.domain2.example
例如,*.domain.example、 sub1.sub2.domain.example和 *.domain2.example的通用名称为 *.domain.example,然后您可以同时附加 *.domain2.example和 *.sub2.domain.example的主题替代名称。它可能取决于证书颁发机构如何向您收取(或不收取)证书费用,但是有一些地方提供这种服务。同时,SAN 在网络浏览器领域也得到了广泛的支持。这种用法在现实世界中最好的例子就是 Google 的 SSL 证书。打开 Google,查看它的 SSL 证书,你会看到它适用于 *.google.com、 *.youtube.com、 *.gmail.com,以及其他一些被列为主题替代名称的地方。
*.google.com
*.youtube.com
*.gmail.com