【问题标题】:Nginx configuration does not workNginx 配置不起作用
【发布时间】:2018-01-14 19:17:08
【问题描述】:

我为我的域创建了几个子域,例如 api.example.com、dev.example.com 和 www.example.com。对于每个子域,我在 Nginx 中创建了一个虚拟主机。

但现在的问题是,当我访问一个不存在的域时,它应该被重定向到 www.example.com。但这不存在,而是我收到一个错误页面,表明子域没有安全连接。由于我使用的是 Let's Encrypt,因此对于不正确的子域,我一直收到此消息。我联系了我的 DNS 提供商,他们告诉我您的设置是正确的,您必须更正您的 Web 服务器配置。他们添加了一个 CNAME。

现在我不知道如何在我的 nginx 配置中添加它。

【问题讨论】:

    标签: linux nginx dns debian webserver


    【解决方案1】:

    所以...您在浏览器中输入 https://incorrect.example.com? 如果是这样,我认为问题无法解决。 在文章中(https://community.letsencrypt.org/t/can-i-use-letsencrypt-in-more-than-one-subdomain/16588/8)他们说

    Let's Encrypt 目前不提供“通配符”证书。因此,您需要能够列出您想要证书的所有域,您不能(就像您可以使用一些价格更高的付费证书一样)只获得一个适用于您域中每个可能名称的域。使用 Let's Encrypt,您需要为所需的任何新名称颁发新证书。

    这表明你不能设置错误子域的所有证书...

    但是如果你只是输入“http://incorrect.example.com”,它可以成功重定向而没有错误页面。 如果错误页面继续出现,请发布您的 nginx 配置文件。

    【讨论】:

    • 不,这不是问题所在。不正确的子域应重定向到 www.example.com。但是所有不正确的子域,例如捕获所有地址。 @wildfoot
    • 对不起,我不明白“all wrong sub domain like catch all adress”是什么意思……我的英语现在很有限……你能换一种说法吗?
    【解决方案2】:

    我看到两个不同的问题 -

    1. 可以使用 Letsencrypt 的通配符证书删除安全警告。请看详细说明here

    2. 将不存在的域重定向到 www.domainname.com 您需要多个服务器部分 -

      • 将每个现有域的 server {} 部分连接到端口 443(HTTPS 端口)
      • 有一个 server {} 部分用于 *.domainname.com 重定向到端口 443 或 www.domainname.com
      • 如果您正在运行一个动态使用子域的应用程序(针对每个客户),该应用程序还应该为不存在的子域实现到 www.domainname.com 的重定向。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-24
      • 2018-12-29
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 2018-07-19
      • 1970-01-01
      相关资源
      最近更新 更多