gpt4 book ai didi

django - 使用 Django 在 Elastic Beanstalk 上使用健康链接的 HTTP 到 HTTPS

转载 作者:行者123 更新时间:2023-12-01 04:23:43 25 4
gpt4 key购买 nike

我正在尝试将 Http 重定向到部署在 AWS Beanstalk 上的 Django 中的 Https。当我从负载均衡器中删除运行状况链接时,Http to 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

最佳答案

SECURE_SSL_REDIRECT = True所有非安全请求都将被重定向到 https。非安全请求 - 通过 http 完成的请求和不匹配的 SECURE_PROXY_SSL_HEADER .

即使您的负载均衡器自己执行 http 到 https 重定向 - 最好在 django 中启用此选项并且更简单(启用所有安全选项)。

AWS ALB 运行状况检查无法设置自定义 header 。我们可以使用 SECURE_REDIRECT_EXEMPT 排除对某些端点的请求被重定向到 https。 - [r'^health/$'] .

AWS ALB 运行状况检查请求对实例 ip 进行。要允许 django 处理它们 - 需要将 ip 添加到 ALLOWED_HOSTS : ["172.16.2.5", "my.example.com"] .这需要是实例私有(private) ip,ALB 将使用它来访问它。

这可以通过以下方式完成:

  • 在实例开始时添加实例 ip,如 example .也可以使用自定义脚本和环境变量来完成。
  • 使用 custom middleware允许在 ALLOWED_HOSTS 中添加 IP 范围并添加 VPC 子网范围或实现 custom middleware manually


  • AWS ALB 无法添加 HSTS header 。如果您想使用严格的传输安全 header - 它们应该添加到应用程序 django 端。这可以通过设置 SECURE_HSTS_SECONDS 来完成。除了零。

    HSTS header 仅在对安全请求的响应中添加( https://SECURE_PROXY_SSL_HEADER 匹配)。

    关于django - 使用 Django 在 Elastic Beanstalk 上使用健康链接的 HTTP 到 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59728254/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com