如何修复 Swagger 中的混合内容错误?

zor*_*ran 2 django gunicorn swagger

我正在 Gunicorn 上运行 Django RF 后端应用程序。当尝试从 Swagger 获取数据时,我收到“TypeError:无法获取”在控制台中报告此错误:

混合内容:“https://****.com/swagger/”页面是通过 HTTPS 加载的,但请求了不安全的资源“http://****.com/v2/products/”。该请求已被阻止;内容必须通过 HTTPS 提供。

我尝试了我发现并能想到的所有内容,包括:

secure_scheme_headers = {
    'X-FORWARDED-PROTOCOL': 'ssl',
    'X-FORWARDED-PROTO': 'https',
    'X-FORWARDED-SSL': 'on'}
Run Code Online (Sandbox Code Playgroud)

到古尼康

USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
Run Code Online (Sandbox Code Playgroud)

到 Django 设置。

但没有任何帮助。

Swagger for Django:drf-yasg==1.12.1

zor*_*ran 5

我找到了解决方案。在 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
Run Code Online (Sandbox Code Playgroud)