SSL-сертификаты и https для сайта django, размещенного на AWS
У меня есть сайт django, размещенный на elastic beanstalk. Я получил AWS SSL сертификат и он был связан с балансировщиком нагрузки 443 HTTPS портом.
В моем конфигурационном файле у меня есть:
MIDDLEWARE = [
...
"django.middleware.csrf.CsrfViewMiddleware",
]
CSRF_COOKIE_HTTPONLY = False
SESSION_COOKIE_HTTPONLY = True
При такой настройке я могу войти на сайт, но браузер отображает "not secure" в адресной строке, и если я добавляю 'https://' к урлам, я получаю страницу, на которой говорится, что соединение не является приватным.
Если я добавлю
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
Затем становится невозможным войти в систему (страница входа просто перезагружается) или, если я перешел в браузер инкогнито, я получаю сообщение 'CSRF verification failed. Запрос прерван." сообщение.
Прошу прощения за длинный вопрос, я просто попытался включить все детали, которые могут быть важны
В settings.py
Добавьте IP и домен в список ALLOWED_HOSTS
.
Вы можете добавить *
, но это не рекомендуется. *
означает, что здесь разрешены все хосты.
ALLOWED_HOSTS = ['your_ip']
Я неправильно настроил слушателя балансировщика нагрузки на порт 4443. Порт экземпляра и протокол экземпляра были 443 и https, тогда как они должны быть 80 и http