题 通配符SSL证书是否应该保护根域以及子域?


我问这个问题,因为Comodo告诉我* .example.com的通配符证书也会保护根域example.com。因此,使用单个证书,my.example.com和example.com都可以在没有来自浏览器的警告的情况下受到保护。

但是,我所提供的证书并非如此。我的子域是安全的,不会出错,但根域会在浏览器中引发错误,说无法验证身份。

当我将此证书与其他类似场景进行比较时,我发现在没有错误的情况下,主题备用名称(SAN)列出了* .example.com和example.com,而来自Comodo的最新证书仅列出*。 example.com作为Common Name,而不是example.com作为Subject Alternative Name。

任何人都可以确认/澄清根域应该列在SAN详细信息中是否也要正确保护?

当我读到这个: http://www.digicert.com/subject-alternative-name.htm 似乎SAN必须列出两者才能按我的需要工作。你有什么经历?

非常感谢。


71
2017-09-12 16:12






答案:


关于如何匹配通配符的SSL实现之间存在一些不一致,但是您需要将根作为备用名称来与大多数客户端一起使用。

为一个 *.example.com 证书,

  • a.example.com 应该通过
  • www.example.com 应该通过
  • example.com 不应该通过
  • a.b.example.com 可能会通过取决于实施(但可能不会)。

从本质上讲,标准说的是 * 应匹配1个或多个非点字符,但某些实现允许点。

规范的答案应该是 RFC 2818(HTTP over TLS)

使用指定的匹配规则执行匹配     [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”(或示例) .com以及您可能需要匹配的所有其他名称)。


64
2017-09-12 16:33





你是对的,根域需要是一个替代它来验证它。


11
2017-09-12 16:34





我使用的每个SSL提供程序都会自动将根域作为主题备用名称添加到通配符SSL证书,因此DOMAIN.COM将自动为* .DOMAIN.COM通配符证书工作。


4
2018-04-22 22:34



自2017-09-20起,AWS Certificate Manager的情况并非如此。 - pho3nixf1re
SAN证书没有“根”域可以保护多个根域。 - Jez


理想情况下会为其生成通配符证书 * .example.com的 为了使用此证书保护您的子域和域,您需要做的就是在指向这些域的服务器上安装相同的证书。

例如,您有* .example.com的通配符证书 one.example.com - 服务器1 example.com - 服务器2

您需要在服务器1和服务器2上安装此证书。


-2
2018-04-14 08:17