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

hard2reg 25天前 13

情况如下

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

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

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

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

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

最新回复 (8)
  • ik 9天前
    引用 2
    添加一个 https 的 default 页面, 或者判断 host 不是二级域名就跳转至二级域名。

    至于证书的问题可以申请泛域名证书解决
  • Yourshell 9天前
    引用 3
    因为 https 尝试链接的的是 443 端口吧,然后你没有限制链接的 hostname
  • 楼主 hard2reg 9天前
    引用 4
    @ik 非常感谢
  • 楼主 hard2reg 9天前
    引用 5
    @Yourshell servr_name sub.x.com; 这样不算限制吗,还是说一定要写判断
  • 楼主 hard2reg 9天前
    引用 6
    @Yourshell 打错了,server_name
  • also24 9天前
    引用 7
    @hard2reg
    server_name sub.x.com 是充分条件,不是必要条件

    当你访问不存在的 server_name 的时候,会走默认 vhost,或者第一个 vhost
  • eason1874 9天前
    引用 8
    不是宝塔特性,Nginx 本身就这样。

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

    防止未配置域名指向,
    http 要配置一个 listen 80 default_server;
    https 要配置一个 listen 443 default_server;
  • 楼主 hard2reg 9天前
    引用 9
    @eason1874 好的谢谢。找到了 https://segmentfault.com/a/1190000015681272
  • 游客
    10
返回