nginx 配置问题 主域名没站,加 https 访问主域名后返回的是二级域名的主页。

2021-04-18 23:02:14 +08:00
 hard2reg

情况如下

x.com 没有部署站点,没写过配置文件

二级 sub.x.com 部署了一个站并开启了 https

访问 http://x.com 正常,没有东西

访问 https://x.com 返回的是 sub.x.com 的内容,chrome 提示“您的连接不是私密连接”。

为什么会这样,如何设置才能避免这种情况。

1637 次点击
所在节点    NGINX
8 条回复
ik
2021-04-18 23:05:44 +08:00
添加一个 https 的 default 页面, 或者判断 host 不是二级域名就跳转至二级域名。

至于证书的问题可以申请泛域名证书解决
Yourshell
2021-04-18 23:09:30 +08:00
因为 https 尝试链接的的是 443 端口吧,然后你没有限制链接的 hostname
hard2reg
2021-04-18 23:10:20 +08:00
@ik 非常感谢
hard2reg
2021-04-18 23:11:48 +08:00
@Yourshell servr_name sub.x.com; 这样不算限制吗,还是说一定要写判断
hard2reg
2021-04-18 23:12:05 +08:00
@Yourshell 打错了,server_name
also24
2021-04-18 23:16:49 +08:00
@hard2reg
server_name sub.x.com 是充分条件,不是必要条件

当你访问不存在的 server_name 的时候,会走默认 vhost,或者第一个 vhost
eason1874
2021-04-19 07:50:21 +08:00
不是宝塔特性,Nginx 本身就这样。

因为你没有配置默认的 443 default_server,所以未配置域名 443 请求过来的时候就会匹配到第一个有效的 443 server block,所以就匹配到了你的 sub 配置。而 sub 配置的证书有效域名没有包含根域名,所以就会提示证书错误。

防止未配置域名指向,
http 要配置一个 listen 80 default_server;
https 要配置一个 listen 443 default_server;
hard2reg
2021-04-19 11:47:19 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/771520

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX