二级子域的通配符

Posted

技术标签:

【中文标题】二级子域的通配符【英文标题】:Wildcard for second level subdomain 【发布时间】:2018-05-28 09:54:28 【问题描述】:

AWS 证书管理器不允许我添加 2 级通配符域名,它将匹配 x.a.example.comy.b.example.com 等。

有解决办法吗? (而不是创建*.a.example.com*.b.example.com 等)

【问题讨论】:

不行,没有别的办法。在 x.509 证书中,通配符只能覆盖单个子域级别,并且只能是最左边的字符。 您可以使用 SAN 并将每个子域添加到同一个证书。有点痛苦,但比多个证书好。 到达这里的人注意:谷歌浏览器缓存 SSL 证书。因此,如果您将证书从 *.example. 更改为 *.a.example.com 并且 Chrome 仍然说您的证书无效,它可能仍然是旧证书(您可以单击 URL 左侧的挂锁并检查 Chrome 为您看到的证书地点)。如果还是旧的,可​​以多刷新几次缓存。 【参考方案1】:

来源:http://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html

通配符名称 ACM 允许您在域名中使用星号 (*) 来创建包含通配符名称的 ACM 证书,该通配符名称可以 保护同一域中的多个站点。例如,*.example.com 保护www.example.com 和 images.example.com。

注意:当您申请通配符证书时,星号 (*) 必须 位于域名最左边,只能保护 一个子域级别。例如,*.example.com 可以保护 login.example.com 和 test.example.com,但无法保护 test.login.example.com。另请注意,*.example.com 仅保护 example.com 的子域,它不保护裸域或***域 (example.com)。但是,您可以申请保护 裸域或顶点域及其子域,通过指定多个域 您的请求中的名称。例如,您可以请求一个证书 保护 example.com 和 *.example.com。

很遗憾,这是不可能/不支持的。

【讨论】:

【参考方案2】:

您可以在命名域的证书中包含主题备用名称或 SAN:https://geekflare.com/san-ssl-certificate/

证书签名请求或 CSR 生成将是这样的:

openssl req -new -key my.key -out my.csr -subj "/CN=*.domain.com" -addext "subjectAltName=DNS:one.complex.domain.com,DNS:completely.another.domain.com"

更多详情:https://***.com/a/16127802/339052

【讨论】:

很好的链接,但仅供用户参考,san.cnf 文件也是必需的。【参考方案3】:

对于那些在证书中遇到多个子域问题的人。

来源:https://aws.amazon.com/premiumsupport/knowledge-center/associate-ssl-certificates-cloudfront/

您不能将多个 SSL 或传输层安全 (TLS) 证书与单个 CloudFront 分配相关联。但是,AWS Certificate Manager (ACM) 提供的证书支持up to 10 subject alternative names,包括通配符。要为通过一个 CloudFront 分配服务的多个域启用 SSL 或 HTTPS,请从 ACM 分配一个包含所有必需域的证书。

要将您自己的 SSL 证书用于 CloudFront 的多个域名,请将您的证书导入 ACM 或 AWS Identity and Access Management (IAM) 证书存储。有关说明,请参阅Importing an SSL/TLS Certificate。

【讨论】:

以上是关于二级子域的通配符的主要内容,如果未能解决你的问题,请参考以下文章

一般的SSL证书二级域名可以使用吗?

需要通配符子域帮助

在 Netlify 上使用通配符子域

#yyds干货盘点# Next.js通配符子域

SSL证书能给几个网站用?

带有 dnsmasq 的通配符子域