5

如何配置django-rest-swagger以获取 HTTPS 请求?

upd:存在 SSL 证书并且所有应用程序都在使用它,但大摇大摆地发出 http 请求。

4

4 回答 4

13

将此设置添加到您的settings.py,

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

有关更多详细信息,请参阅文档..

此外,您可能需要确保您的服务器正在转发x_forwarded_proto,并在 nginx 上将此添加到您在服务器配置中的位置:

proxy_set_header  X-Forwarded-Protocol  $scheme;
于 2017-07-31T06:53:05.030 回答
1

将 url='https://your_server_address/', 放在 urls 中的 get_schema_view 函数中。

但是 swagger 现在只能在 https 上工作,如果你想同时在 http 和 https 上工作,你可以通过 env 变量来处理。

于 2020-09-25T12:19:12.103 回答
-1

@zaidfazil 的回答几乎对我有用。我不得不添加

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

到我的 django 设置,但后来我不得不添加

proxy_set_header X-Forwarded-Proto https;

代替:

proxy_set_header  X-Forwarded-Protocol  $scheme;

在为 django 应用程序提供服务的 nginx 位置块内。

于 2019-06-12T15:29:25.597 回答
-1

这不是你招摇的问题。只需在您的 django 服务应用服务器上安装 SSL 证书。

于 2017-07-28T15:21:16.177 回答