我之所以问这个问题,是因为 Comodo 告诉我 *.example.com 的通配符证书也会保护根域 example.com。因此,使用单个证书,my.example.com 和 example.com 都会得到保护,并且不会收到浏览器的警告。
但是,我获得的证书却不是这样。我的子域名安全无虞,没有出现错误,但根域名却在浏览器中出现错误,提示无法验证身份。
当我将此证书与其他类似场景进行比较时,我发现在没有错误的场景中,主题备用名称 (SAN) 同时列出了 *.example.com 和 example.com,而 Comodo 的最新证书仅列出 *.example.com 作为通用名称,而不是 example.com 作为主题备用名称。
是否有人可以确认/澄清,如果要正确保护根域,则根域是否应该列在 SAN 详细信息中?
当我读到这篇文章时:http://www.digicert.com/subject-alternative-name.htm看来 SAN 必须列出两者才能按我的需要工作。您的经验是什么?
非常感谢。
答案1
SSL 实现在如何匹配通配符方面存在一些不一致,但是您需要根作为备用名称才能与大多数客户端一起使用。
对于*.example.com
证书,
a.example.com
应该通过www.example.com
应该通过example.com
应该不是经过a.b.example.com
可能根据实现情况通过(但可能不会)。
本质上,标准规定*
应该匹配一个或多个非点字符,但有些实现允许使用点。
规范答案应该是RFC 2818(TLS 上的 HTTP):
匹配使用 [RFC2459] 指定的匹配规则执行。如果证书中存在给定类型的多个身份(例如,多个 dNSName 名称,则集合中任何一个的匹配都被视为可接受。)名称可能包含通配符 *,该通配符被视为与任何单个域名组件或组件片段匹配。例如,
*.a.com
匹配 foo.a.com 但不匹配 bar.foo.a.com。f*.com
匹配 foo.com 但不匹配 bar.com。
RFC 2459说:
- “*”通配符可以用作证书中最左侧的名称组件。例如,
*.example.com
将匹配 a.example.com、foo.example.com 等,但不匹配 example.com。
如果你需要证书才能在 example.com 上使用,www.example.com和 foo.example.com,您需要一个带有 subjectAltNames 的证书,这样您就有“example.com”和“*.example.com”(或 example.com 和您可能需要匹配的所有其他名称)。
答案2
你是对的,根域需要是一个备用名称才能进行验证。
答案3
我曾经使用过的每个 SSL 提供商都会自动将根域作为主题备用名称添加到通配符 SSL 证书中,因此 DOMAIN.COM 将自动适用于 *.DOMAIN.COM 通配符证书。
答案4
通配符证书最适合于*.example.com 为了使用此证书保护您的子域和域,您需要做的就是在指向这些域的服务器上安装相同的证书。
例如 - 您有 *.example.com 的通配符证书 one.example.com - 服务器 1 example.com - 服务器 2
您需要在服务器1和服务器2上安装此证书。