Django CSRF verification failed with nginx reverse proxy

Я в отчаянии.

У меня есть https-сервер, который перенаправляет трафик на мой локальный https-сервер. Мой университет использует обратный прокси, который перенаправляет запросы на мой nginx: Локальный https-сервер виден только через vpn. Они делают это для того, чтобы мне не нужно было заботиться об управлении ключами, и я могу просто подключить несколько общих.

Когда я на VPN, внешний сервер работает как ожидалось, но когда я выхожу из VPN, внешний сервер возвращает CSRF cookie not set.

Я проверил практически все и прочитал все CSRF verification failed. Request aborted. сообщения здесь.

Урл на внешнем сервере (анонимизированный):

Конфигурация nginx:


server {

    listen 443 ssl;
    server_name project.uni.edu localhost;

    ssl_certificate     /code/staticfiles/cert/project_name.pem;
    ssl_certificate_key /code/staticfiles/cert/project_name_key.pem;

    location / {
        proxy_pass http://web:8000;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect off;
    }

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

    location /media/ {
        alias /code/mediafiles/;
    }

}

Мои настройки в файле django следующие:

    CSRF_TRUSTED_ORIGINS = ["https://project.uni.edu/","https://project_internal.uni.edux/"]
    # SESSION_COOKIE_SECURE= True
    CSRF_COOKIE_HTTPONLY = False
    SESSION_COOKIE_DOMAIN=  "project_internal.uni.edux"

Вернуться на верх