Проблема при перенастройке Nginx для SSL с самозаверяющим сертификатом - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть VPS на Digital Ocean с Ubuntu 18.04, Nginx, Gunicorn, Django и тестовое веб-приложение, все настроено (ufw) для работы с http: 80. Все работает отлично. Учебник

Теперь я изменяю файл / sites-available / LibrosWeb , чтобы разрешить трафик SSL с самозаверяющим сертификатом, поскольку у меня нет домена. Учебник . Результат «Ошибка 502 Bad Gateway» .

Это исходный код, который хорошо работает с 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-signature.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 голосов
/ 09 сентября 2018

Я думаю, что мои дни страданий прошли. Прочитав сотни логов, я обнаружил проблему. Обновление Whitenoise до 4.0, где вы должны изменить форму конфигурации, привело к тому, что при моей старой конфигурации служба gunicorn будет выдавать ошибки. В остальном все в порядке.

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

Спасибо за помощь. Добрый день.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...