【问题标题】:NGINX redirecting subdomains to document root of root domain when using wildcard LetsEncrypt cert使用通配符 LetsEncrypt 证书时,NGINX 将子域重定向到根域的文档根
【发布时间】:2018-11-25 12:13:21
【问题描述】:

我有一个运行 NGINX 的 EC2 实例,并且我设置了一个涵盖子域的通配符 LetsEncrypt 证书。它实际上并没有重定向域名(例如test.example.com 不会重定向到example.com。它保持为test.example.com,但显示example.com 的文档根)。

我很确定我的 DNS 设置正确,因为当我删除 301 重定向并将根目录放在第一个服务器块中时,我的所有子域都正常工作,这让我相信 SSL 证书是问题所在。

这是我的 NGINX 配置:

server {
  listen 80;
  listen [::]:80;

  server_name example.com;

  return 301 https://example.com;
}

server {
  listen 443 ssl;

  root /var/www/html/example.com;

  index index.html;

  ssl_certificate /home/webadmin/letsencrypt/config/live/example.com/fullchain.pem;
  ssl_certificate_key /home/webadmin/letsencrypt/config/live/example.com/privkey.pem;
}

server {
    listen 80;
    listen [::]:80;

    server_name test.example.com;

    return 301 https://test.example.com;
}

server {
    listen 443 ssl;

    root /var/www/html/test.example.com;

    ssl_certificate /home/webadmin/letsencrypt/config/live/example.com/fullchain.pem;
    ssl_certificate_key /home/webadmin/letsencrypt/config/live/example.com/privkey.pem;
}

【问题讨论】:

    标签: ssl nginx lets-encrypt


    【解决方案1】:

    根据您的示例配置,您的 SSL server 块没有 server_name,但您的 http server 块却有。所以nginx 知道您在谈论 301 重定向,但nginx 将选择第一个匹配端口/协议的服务器块,如果它不匹配 server_name

    【讨论】:

      猜你喜欢
      • 2012-07-08
      • 1970-01-01
      • 2016-11-11
      • 2015-11-20
      • 2011-05-18
      • 1970-01-01
      • 2017-12-01
      • 2012-11-18
      • 1970-01-01
      相关资源
      最近更新 更多