是否有必要调整Django app中的settings.py以正确设置SSL保护(使用nginx反向代理+ gunicorn)

时间:2016-02-24 11:39:19

标签: python django ssl nginx

我有一个Django应用程序,其中webserver是nginx反向代理+ gunicorn。

我的问题是:当在Django应用的网络服务器上安装SSL时,是否有必要在https://example.com正确加载之前调整settings.py?或者https://example.com即使无法调整settings.py也可以访问?

目前,对我而言https://example.com只是超时,我正在尝试诊断这是否是我在网络服务器上安装SSL的问题,或者是否因为我还没有调整我的问题settings.py文件。

例如,Django文档建议在settings.py中设置以下内容:

1)设置SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')以防https被代理人吞下

2)将SECURE_SSL_REDIRECT设置为True会将http流量定向到https。虽然这可以在网络服务器上更安全地完成。

3)将SESSION_COOKIE_SECURECSRF_COOKIE_SECURE设置为True可确保仅通过https发送这些Cookie。

这些设置似乎都不是https://example.com正确加载所必需的。

事实证明,最后一根稻草包括Azure门户中的相关端口(即端口443)(托管我的基础架构)。

1 个答案:

答案 0 :(得分:1)

通常,您无需更改任何内容即可使SSL正常工作。上面的建议增加了安全性,但它们不是必须的。

如果您的请求超时,可能有两个原因:

  1. NginX没有收听端口443.发布您的.conf文件以确保

  2. 您的服务器上安装了防火墙,阻止了对端口443的传入TCP请求。