NGINX HTTPS 未正确重定向

NGINX HTTPS 未正确重定向

我跟着Cerbot 的说明 在我的 Debian 服务器中为域获取 NGINX 的 HTTPS 证书,但 HTTPS 未正确重定向。

etc/nginx/conf.d/app.conf我从 Certbot 的自动生成中得到以下内容:

server {
    server_name mnpd.khkm.dev www.mnpd.khkm.dev;
    # listen 8080;
    server_tokens off;
    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }
    location / {
        # return 301 https://mnpd.khkm.dev$request_uri;
        proxy_pass http://mnpd.khkm.dev;
    }

    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mnpd.khkm.dev/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mnpd.khkm.dev/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = mnpd.khkm.dev) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    listen [::]:80;
    server_name mnpd.khkm.dev www.mnpd.khkm.dev;
    return 404; # managed by Certbot
}

在 Chrome 中,当我去https://mnpd.khkm.dev/,我得到:

mnpd.khkm.dev redirected you too many times.
Try deleting your cookies.
ERR_TOO_MANY_REDIRECTS

我找到了这个堆栈溢出答案 我查看了 Web 控制台中的“网络”选项卡,发现该页面不断被重定向到https://mnpd.khkm.dev/. NGINX 配置应该侦听 HTTPS 端口 443,那么为什么它不加载并不断重定向呢? (我希望加载默认的 NGINX 页面。)

答案1

端口 80 被重定向到 443,它正在尝试代理正在重定向的 80....

去除

    location / {
        # return 301 https://mnpd.khkm.dev$request_uri;
        proxy_pass http://mnpd.khkm.dev;
    }

我不会让 certbot 重写我的配置文件。它确实只适用于最简单的用例。我建议使用certbot 处于独立模式。这使得配置成为您的问题,并让 certbot 管理证书。

您运行 cert bot,它会告诉您证书文件的位置,然后您将这些位添加到 HTTPS 服务器配置中。当它更新时;它将新文件放在同一位置,因此您无需在站点设置后再次更改配置。 certbot 更新并重新启动 nginx。

相关内容