我有一个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_SECURE
和CSRF_COOKIE_SECURE
设置为True
可确保仅通过https发送这些Cookie。
这些设置似乎都不是https://example.com正确加载所必需的。
事实证明,最后一根稻草包括Azure门户中的相关端口(即端口443)(托管我的基础架构)。
答案 0 :(得分:1)
通常,您无需更改任何内容即可使SSL正常工作。上面的建议增加了安全性,但它们不是必须的。
如果您的请求超时,可能有两个原因:
NginX没有收听端口443.发布您的.conf
文件以确保
您的服务器上安装了防火墙,阻止了对端口443的传入TCP请求。