子域上的通配符 SSL

我们有一个通配符 SSL 证书的 *.domain.example,并有一个网站与 sub1.sub2.domain.example

MacOS 上的 Safari 4.0.4会弹出一个证书错误(可能是因为通配符解释) ,而 Windows 上的 Safari 4则不会。

而且 IE8的行为充其量是混合的,一些 IE8显示证书错误,一些没有。

是什么导致了 Safari 和 IE 上这种奇怪的行为?

101665 次浏览

通配符只应用于域的第一部分(从左边开始)。所以你需要一个 *.sub2.domain.example的证书

如果你的意思是你有 sub1.domain.examplesub2.domain.example,那么它应该工作。

*.example.net的通配符 SSL 证书将与 sub.example.net匹配,但与 sub.sub.example.net不匹配。

来自 RFC 2818:

指定的匹配规则执行匹配 RFC2459 证书(例如,多个 dNSName 名称,任何一个名称中的匹配项 名称可以包含通配符 字符 *,它被认为是匹配任何单个域名 例如,*.a.examplefoo.a.example匹配,但是 不是 bar.foo.a.examplef*.example匹配 foo.example但不匹配 bar.example

如果您需要一个包含 *.domain.example站点的通配符证书,并且还可以使用 sub1.sub2.domain.example或其他类似于 *.domain2.example的域,那么您可以使用一个通配符证书来解决这个问题,这个通配符证书对于其他每个子域都有一个所谓的主题替代名称(Subject Alternative name,SAN)扩展。SAN 证书不仅适用于多个特定的主机名,还可以为通配符条目创建它。

例如,*.domain.examplesub1.sub2.domain.example*.domain2.example的通用名称为 *.domain.example,然后您可以同时附加 *.domain2.example*.sub2.domain.example的主题替代名称。它可能取决于证书颁发机构如何向您收取(或不收取)证书费用,但是有一些地方提供这种服务。同时,SAN 在网络浏览器领域也得到了广泛的支持。这种用法在现实世界中最好的例子就是 Google 的 SSL 证书。打开 Google,查看它的 SSL 证书,你会看到它适用于 *.google.com*.youtube.com*.gmail.com,以及其他一些被列为主题替代名称的地方。