关于BT宝塔面板绑定域名错乱串站问题

关于BT宝塔面板绑定域名错乱串站问题

今天给 services.ghostchu.com 绑定网站目录后访问一直提示 404。 排查两个小时后,发现日志里赫然出现了这样一句 LOG: 2021/12/27 01:15:27 [error] 35217#0: *70 open() "/www/wwwroot/api.ghostchu.co

今天给 services.ghostchu.com 绑定网站目录后访问一直提示 404。

排查两个小时后,发现日志里赫然出现了这样一句 LOG:

2021/12/27 01:15:27 [error] 35217#0: *70 open() "/www/wwwroot/api.ghostchu.com/i.html" failed (2: No such file or directory), client: {My IP}, server: api.ghostchu.com, request: "GET /i.html HTTP/1.1", host: "services.ghostchu.com"

???为什么 services.ghostchu.com 访问到了 api.ghostchu.com 的站点目录,我直接百思不得其解。

检查了 Nginx 的 conf 文件,root 目录都设置的是正确的,.user.inibase_dir 也是完全正确的。

之前使用 LNMP 和 OneInStack 的时候从来没遇到这种玄学问题。

更加离谱的事情

在我发现 services.ghostchu.comapi.ghostchu.com 干架后,我临时下线了 api.ghostchu.com 站点。

令我瞳孔地震的事情发生了:

services.ghostchu.com 现在和 pan.ghostchu.com 串站了。

?????????????????????????????????????????

都是 SSL 惹的祸

考虑到之前从没出现过这种现象,怀疑是 BT 面板特色,到 BT 论坛以 “域名绑定 混乱” 查找了下,看到一个令我这辈子都无法理解和想到的回答:

没有启用 SSL 的站点使用 HTTPS 访问会访问到开启 SSL 的站点

?????????????????????????

什么东西?

我直接震撼一整年。

为什么啊?这么做有什么意义吗?

你直接默认行为报证书错误不行吗,为什么要随机一个已开启SSL的站点啊,我排查了一晚上啊!

签发 SSL 证书

更离谱的是,因为这个机制,所以 SSL 证书签发一直过不了。

所以我要先去 CDN 那里关闭 http 重定向和 hsts,然后才能给 services 子域签发证书。

签发后,行为恢复正常。

吐了。

Comment