Mun*_*eeb 5 django amazon-web-services amazon-elastic-beanstalk
我正在尝试将 Http 重定向到部署在 AWS Beanstalk 上的 Django 中的 Https。当我从负载均衡器中删除运行状况链接时,Http 到 Https 工作正常。当负载均衡器中有链接时,应用程序停止工作。
我在 Aws Beanstalk 上托管的 Django 项目的设置文件中使用以下配置。
CORS_REPLACE_HTTPS_REFERER = True
HOST_SCHEME = "https://"
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_HSTS_PRELOAD = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
Run Code Online (Sandbox Code Playgroud)
所有SECURE_SSL_REDIRECT = True非安全请求将被重定向到 https。非安全请求 - 通过http和 不匹配完成的请求SECURE_PROXY_SSL_HEADER。
即使您的负载均衡器自行执行 http 到 https 重定向 - 在 django 和 simplier 中启用此选项(启用所有安全选项)也是很好的。
AWS ALB 运行状况检查无法设置自定义标头。我们可以使用SECURE_REDIRECT_EXEMPT -排除对某些端点的请求重定向到 https [r'^health/$']。
AWS ALB 运行状况检查请求是针对实例 ip 执行的。为了允许 django 处理它们 - 需要将 ip 添加到ALLOWED_HOSTS :中["172.16.2.5", "my.example.com"]。这需要是实例专用 IP,ALB 将使用该 IP 来访问它。
这可以通过以下方式完成:
在实例启动时添加实例 IP,如示例中所示。也可以使用自定义脚本和环境变量来完成。
使用自定义中间件,允许添加 IP 范围ALLOWED_HOSTS并添加 VPC 子网范围或手动实施自定义中间件
AWS ALB 无法添加 HSTS 标头。如果您想使用严格传输安全标头 - 它们应该添加到应用程序 django 端。这可以通过将SECURE_HSTS_SECONDS设置为非零来完成。
HSTS 标头仅添加到对安全请求(https://或SECURE_PROXY_SSL_HEADER匹配)的响应中。
| 归档时间: |
|
| 查看次数: |
1689 次 |
| 最近记录: |