Задать вопрос
@YellaG28

Не работает сайт при SECURE_SSL_REDIRECT = True. Как исправить?

Не работает сайт при SECURE_SSL_REDIRECT = True. Без нее все работает хорошо. Но как только ставлю True, то браузер пишет, что соединение не защищено. SSL сертификат на сервере установлен. Браузер его видит и в адресно строке пишет, что соединение защищено.

Вот мои настройки проекта. Закомментированные строки - это то, что я пробовал вместе с SECURE_SSL_REDIRECT = True. Ничего не помогло, другой информации я не нашел

SECURE_SSL_REDIRECT = True
#CSRF_TRUSTED_ORIGINS = ['https://site.ru', 'https://www.site.ru']
ALLOWED_HOSTS = ['site', 'www.site.ru', 'IP']
#ALLOWED_HOSTS = ['*']
#PREPEND_WWW = True
#SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
#BASE_URL = "https://www.site.ru"
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
#SECURE_HSTS_SECONDS = 31536000
#SECURE_HSTS_PRELOAD = True
#SECURE_HSTS_INCLUDE_SUBDOMAINS = True


Настройки nginx:

server {
    server_name site.ru www.site.ru;

    access_log /site/nginx.log;
    error_log /site/nginx_error.log;

    location /static/ {
        alias /site/site/staticfiles/;
    }

    location / {
        proxy_pass http://IP:8000;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
    }

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


    if ($host = ''.ru) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name ''.ru www.''.ru;
    return 404; # managed by Certbot




}

Чтобы установить сертификат выполнял следующие команды:

1. sudo apt-get install certbot python3-certbot-nginx
2. sudo certbot certonly --nginx
3. sudo certbot install --nginx
4. sudo systemctl restart nginx
  • Вопрос задан
  • 69 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы