【问题标题】:nginx page not found error after certbot installation安装certbot后找不到nginx页面错误
【发布时间】:2021-03-20 20:38:50
【问题描述】:

我有一个正在运行的 http 网站(带有 Flask 和 nginx)。我正在尝试使用certbot 安装ssl,并按照他们的步骤导致安装成功消息(恭喜...),但刷新我的网页会导致404 Not Found nginx/1.18.0 (Ubuntu)。 这是sudo certbot --nginx之后的nginx.conf文件

server {
    server_name www.mydomain.com;

    location /static {
        alias /home/ubuntu/adviser/flaskblog/static;
    }

    location / {
        proxy_pass http://localhost:8000;
        include /etc/nginx/proxy_params;
        proxy_redirect off;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.mydomain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.mydomain.com/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 = www.mydomain.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name www.mydomain.com;
    return 404; # managed by Certbot


}

非常感谢任何帮助。

【问题讨论】:

    标签: nginx ssl flask nginx-location certbot


    【解决方案1】:

    首先,删除这一行:

    return 404; # managed by Certbot
    

    这会导致返回 404 错误。

    如果没有帮助,请更改整个块:

    server {
        if ($host = www.mydomain.com) {
            return 301 https://$host$request_uri;
        } # managed by Certbot
    
    
        listen 80;
        server_name www.mydomain.com;
        return 404; # managed by Certbot
    }
    

    到这里:

    server {
        listen 80;
        server_name www.mydomain.com;
        return 301 https://$host$request_uri;
    }
    

    更新
    另外,您可以尝试更改

    return 301 https://$host$request_uri;
    

    return 301 https://www.yourdomain.com$request_uri;
    

    (由于一些奇怪的 StackOverflow 限制,我不得不将 mydomain 替换为 yourdomain。)

    【讨论】:

    • 谢谢。它解决了 404 问题,但现在 https 被一条红线划掉了。我不知道为什么它无法识别我的 ssl(路径似乎是正确的)。
    • 您是只删除了一行(我的第一个建议)还是完全修改了服务器块?
    • 我都试过了,这给了我正在发生的事情的线索(我在下面回答)。再次感谢您的帮助。
    【解决方案2】:

    我终于弄清楚是什么问题了。

    我正在为 www.mydomain.com 创建证书,但实际上我的域设置为 mydomain.com(没有 www)。我正在重定向到 www,但要么我做错了,要么 certbot 不喜欢这种性质的重定向。

    长话短说,我(重新)为mydomain.com 颁发了证书,证书就像一个魅力!

    【讨论】:

      猜你喜欢
      • 2016-06-08
      • 2020-01-22
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      • 2023-04-01
      • 2015-09-02
      • 1970-01-01
      • 2018-08-01
      相关资源
      最近更新 更多