Как исправить ошибку смешанного контента в Swagger? - PullRequest
0 голосов
/ 08 июля 2019

Я использую серверное приложение Django RF на Gunicorn.При попытке извлечь данные из Swagger я получаю «TypeError: Failed to fetch». В консоли сообщается об этой ошибке:

Смешанное содержимое: страница в https://****.com/swagger/' была загружена через HTTPS, но запросил небезопасный ресурс 'http://****.com/v2/products/'. Этот запрос был заблокирован;содержимое должно быть передано по протоколу HTTPS.

Я перепробовал все, что нашел и мог придумать, в том числе: Добавление

secure_scheme_headers = {
    'X-FORWARDED-PROTOCOL': 'ssl',
    'X-FORWARDED-PROTO': 'https',
    'X-FORWARDED-SSL': 'on'}

в Gunicorn

и

USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

в настройках Django.

Но ничего не помогает.

Swagger для Django: drf-yasg == 1.12.1

1 Ответ

0 голосов
/ 09 июля 2019

Я нашел решение. В настройках Django добавьте

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True

# Security Headers
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SECURE_HSTS_SECONDS = 3600
...