Nginx配置不起作用

时间:2017-08-07 13:05:38

标签: linux nginx dns debian webserver

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

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

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

2 个答案:

答案 0 :(得分:0)

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

  

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

这表明您无法设置错误子域的所有证书......

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

答案 1 :(得分:0)

我看到两个独立的问题-

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

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

    • 每个现有域的服务器{}部分都具有端口443(HTTPS端口)
    • 为* .domainname.com设置一个服务器{}部分,以重定向到端口443或www.domainname.com
    • 如果您运行的应用程序动态地(对于每个客户)使用子域,则该应用程序还应该为不存在的子域实现到www.domainname.com的重定向。