django+nginx+gunicorn 问题与 Cerbot 转换为 HTTPS

django+nginx+gunicorn issues with Cerbot to turn into HTTPS

我目前正在服务器 AWS Lightsail Debian 10.8 上部署我的 django 应用程序。它在 http 上运行良好。所以我想将我的应用程序转换为 HTTPS 并获得 SSL 证书。我遵循了 2 个关于它的教程:

完成所有这些步骤后,即使在 HTTP 中也不再起作用,无法访问该站点...这是 /etc/nginx/sites-available 中的配置文件。

 server {
  server_name 13.38.76.96 www.zlochteam.com;

 location / {
        include proxy_params;
        proxy_pass http://localhost:8000/;
    }

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


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


}

我想知道是否有人遇到过同样的问题,他是如何解决的。

谢谢!

在 运行 certbot 中的命令之前,请确保您的 Nginx 中有以下内容:

server {
    listen 80;
    server_name 13.38.76.96 www.zlochteam.com;
    listen [::]:80;
    ...

似乎 certbot 现在也需要 ipv6。

HTTP 已中断,因为 certbot 添加了重定向 return 301 https://$host$request_uri;

您应该通过命令 nginx -t 测试配置,然后重新加载配置 nginx -s reload

已解决

我只需要允许从 AWS LightSail 上的端口 443 连接,这样的虚拟错误...

此处是您需要在“网络”选项卡中添加 HTTPS 连接的位置。