二级子域的通配符
Posted
技术标签:
【中文标题】二级子域的通配符【英文标题】:Wildcard for second level subdomain 【发布时间】:2018-05-28 09:54:28 【问题描述】:AWS 证书管理器不允许我添加 2 级通配符域名,它将匹配 x.a.example.com
、y.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。
【讨论】:
以上是关于二级子域的通配符的主要内容,如果未能解决你的问题,请参考以下文章