我有一个通过 AWS Route 53 创建的域名,
主域名通过letsencrypt
方法进行保护,但不适用于任何通配符/子域名......
*.example.com
我尝试使用记录中的域和 DNS TXT 验证方法重新执行证书。这在我的 GeoDNS 路由到其特定实例的端点上有效,即fr.example.com
和us.example.com
...但现在当我转到我的主域时,example.com
它现在显示它不再安全,并且由于 ,引用此主域的许多代码都出错了"invalid cert"
。
当我通过 Chrome 浏览器加载这个主域时,它会报告“不安全”,当我单击它时,Certificate: (Not Secure)
我会单击它,然后弹出详细信息,显示我的*.example.com
域,但亮起绿色表示该域是安全的。......?
在 Safari 中它显示*.example.com certificate name does not match input.
有什么想法吗?我该如何保护我的主域名,同时保护通配符?
答案1
证书上的通配符名称仅与子域匹配。要保护“裸”域,您需要将该名称单独添加到主题备用名称列表中。
有关通配符证书的一些限制在这个帖子。
通配符证书
V2 API 支持颁发通配符证书。要申请通配符证书,只需在 newOrder 请求中发送通配符 DNS 标识符即可。根据 Let's Encrypt 的政策,通配符标识符必须通过 DNS-01 质询进行验证,因此与通配符标识符相对应的订单授权将仅提供 DNS-01 质询。证书中的 DNS 名称只能有一个通配符,并且必须是整个最左边的 DNS 标签,例如
*.example.com
。单个证书可以有多个基本域的通配符 DNS 名称,也可以混合非通配符名称。包含基本域及其通配符等效项(例如
*.example.com
和example.com
)的订单有效。在这种情况下, 的订单中将有两个授权对象,其中一个代表通配符验证,另一个代表基本域验证。冗余条目将产生错误。例如,同时包含和example.com
的订单将产生错误,因为通配符条目使后者变得冗余。*.example.com
www.example.com
关于通配符证书,维基百科虽然不是一个可靠的引用来源,但那里给出的例子是准确的。
单个通配符证书
https://*.example.com
将保护域上的所有子域https://*.example.com
:
payment.example.com
contact.example.com
login-secure.example.com
www.example.com
...
由于通配符仅涵盖一个级别的子域名(星号与句号不匹配),因此这些域名对于证书无效:
test.login.example.com
“裸”域名在作为主题备用名称单独添加时有效:
example.com
请注意 CA 可能存在的例外,例如 DigiCert 的通配符加号证书包含裸域 example.com 的自动“加号”属性。