使用自签名证书为SSL重新配置Nginx时出现问题

时间:2018-09-04 00:26:09

标签: django ssl nginx

我在Digital Ocean上拥有一个VPS,其中包含Ubuntu 18.04,Nginx,Gunicorn,Django和一个测试Web应用程序,所有这些都配置(ufw)可以与http:80一起使用。一切正常。 Tutorial

现在,我修改文件 / sites-available / LibrosWeb ,以允许使用具有自签名证书的SSL流量,因为我没有域。 Tutorial。结果“错误502错误的网关错误”

这是与http:80一起使用的初始代码:

server{
    #Configuracion http

    listen 80;
    listen [::]:80;
    server_name 15.15.15.15;

    location = /favicon.ico { access_log off; log_not_found off; }
    location  /robots.txt {
        alias /var/www/LibrosWeb/robots.txt ;
    }        
    location /static/ {
        root /home/gela/LibrosWeb;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

这是允许SSL(错误502)的代码:

server{
    #Configuracion SSL

    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name 15.15.15.15;
    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;

    location = /favicon.ico { access_log off; log_not_found off; }
    location  /robots.txt {
        alias /var/www/LibrosWeb/robots.txt ;
    }
    location /static/ {
        root /home/gela/LibrosWeb;
    }

    location / {
        include proxy_params;
        proxy_pass https://unix:/run/gunicorn.sock;
    }
}

server{
    #Configuracion http

    listen 80;
    listen [::]:80;
    server_name 15.15.15.15;
    return 302 https://15.15.15.15$request_uri;
}

UFW配置为:

80,443/tcp (Nginx Full)    ALLOW IN    Anywhere
80,443/tcp (Nginx Full (v6)) ALLOW IN    Anywhere (v6)

/etc/nginx/snippets/self-signed.conf /etc/nginx/snippets/ssl-params.conf 中的文件与本教程。

我已经测试配置两天了,最能得到的就是我半途工作,也就是说,如果我将这样的代码放进去,我可以显示django的默认页面,而不显示我的应用程序之一。 :

server{
    #Configuracion http

    listen 80;
    listen [::]:80;
    server_name 15.15.15.15;
    return 302 https://15.15.15.15$request_uri;

    location = /favicon.ico { access_log off; log_not_found off; }
    location  /robots.txt {
        alias /var/www/LibrosWeb/robots.txt ;
    }
    location /static/ {
        root /home/gela/LibrosWeb;
    }
}

server{
    #Configuracion SSL

    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name 15.15.15.15;
    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;

    location / {
       include proxy_params;
       proxy_pass https://unix:/run/gunicorn.sock;
    }
}

出什么问题了,或者缺少了什么?

1 个答案:

答案 0 :(得分:0)

我认为我痛苦的日子已经过去了。阅读数百条日志后,我发现了问题。将Whitenoise更新为4.0,您必须更改配置的形状,这导致使用我的旧配置的gunicorn服务将引发错误。其余的都没事。

http://whitenoise.evans.io/en/stable/django.html#django-middleware

感谢您的帮助。 美好的一天。