ssl - 虚拟主机重定向不存在的子域
问题描述
我有一个*.example.com
来自 LetsEncrypt 的通配符证书。
我想捕获所有不存在的子域并将它们重定向到example.com
. 因此,示例之前的所有内容。sadsdadasdwdasd.example.com => https://example.com
这有效:
www.something.example.com => https://example.com
http://www.something.example.com => https://example.com
https://something.example.com => https://example.com
但我有一个问题:https://www.something.example.com
包含www我无法将此子域重定向回example.com
,它显示此 ssl 错误:ERR_CERT_COMMON_NAME_INVALID
因为如果有人https://www
在 url 中输入,它就不起作用。
问题出在哪里?
解决方案
通配符 ( *
) 仅匹配单个标签,而不匹配整个结构。
请参阅https://en.wikipedia.org/wiki/Wildcard_certificate:
由于通配符仅涵盖一级子域(星号与句号不匹配),[4] 这些域对证书无效:
test.login.example.com
所以你的证书*.example.com
永远不会匹配 hostname www.something.example.com
。不,您不能拥有*.*.example.com
.
推荐阅读
- javascript - 理解 javascript 中的 XHR 请求对象...(困惑)
- javascript - 如何在循环中创建正则表达式?
- php - 如何在 Symfony 3.4 中将 json 反序列化为具有关系的实体?
- apache-flink - Apache Flink:每台机器的 TaskManager 数量
- vb.net - 嵌套水晶报表出错**子报表不支持**
- spring-boot - 如何在spring boot中正确实现apache shiro的ehcache并与ehcache一起使用spring?
- javascript - 使多个元素在放置时可见
- python - 使用 python 在 Windows 上跟踪结束任务应用程序的事件
- mysql - 将所有从 table1 插入到 table2 具有不同的表结构
- c# - 如何在 RetryPolicy 上使用策略包装
?