我在 apache 服务器上设置了两个主机,并带有签名的 SSL 证书。我相信这两个虚拟主机的配置都是正确的。第一个是 sub.domain.com,它运行正常,浏览器不会抱怨它的证书。第二个域名是 level.sub.domain.com,它会产生错误,我得到的是 ssl_error_bad_cert_domain
level.sub.domain.com 使用无效的安全证书。
该证书仅对以下名称有效:*.domain.com、domain.com
*.domain.com 证书是否应支持多级子域名?
答案1
*.domain.com 应仅与域 .domain.com 匹配,但不与 domain.com 或 abdomain.com 匹配。
引用此精彩的演讲:
RFC 2595(将 TLS 与 IMAP、POP3 和 ACAP 结合使用):可以使用“*”通配符作为证书中最左侧的名称组件。例如,*.example.com 将匹配 a.example.com、foo.example.com 等,但不会匹配 example.com。
RFC 2818 (HTTP Over TLS):名称可以包含通配符 *,该通配符被视为与任何单个域名组件或组件片段匹配。例如,.a.com 与 foo.a.com 匹配,但不与 bar.foo.a.com 匹配。f.com 与 foo.com 匹配,但不与 bar.com 匹配。
RFC 4513(LDAP 身份验证方法):dNSName 类型的 subjectAltName 值中允许使用“*”(ASCII 42)通配符,并且只能作为该值中最左侧(最低有效)的 DNS 标签。此通配符可匹配服务器名称中的任何最左侧 DNS 标签。也就是说,主题 *.example.com 与服务器名称 a.example.com 和 b.example.com 匹配,但与 example.com 或 abexample.com 不匹配。