AWS 托管的 django 站点的 SSL 证书和 https

Posted

技术标签:

【中文标题】AWS 托管的 django 站点的 SSL 证书和 https【英文标题】:SSL certificates and https for AWS hosted django site 【发布时间】:2021-12-24 14:44:32 【问题描述】:

我在弹性 beantalk 上托管了一个 django 站点。我已获得 AWS SSL 证书,并且已与负载均衡器 443 HTTPS 端口相关联。

在我的配置文件中:

MIDDLEWARE = [
...
    "django.middleware.csrf.CsrfViewMiddleware",
]

CSRF_COOKIE_HTTPONLY = False
SESSION_COOKIE_HTTPONLY = True

通过此设置,我可以登录该站点,但浏览器在地址栏中显示“不安全”,如果我在 URL 前添加“https://”,我会得到一个页面,说明连接不是私有的.

如果我添加

SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True

然后就无法登录(登录页面刚刚重新加载),或者如果我进入隐身浏览器,我会收到“CSRF 验证失败”。请求中止。消息。

抱歉这个问题太长了,我只是试图包含可能相关的任何细节

【问题讨论】:

【参考方案1】:

我为端口 4443 配置了错误的负载平衡器侦听器。我将实例端口和实例协议设置为 443 和 https,而它们应该是 80 和 http

【讨论】:

【参考方案2】:

settings.pyALLOWED_HOSTS 列表中添加 IP 和域。 你可以放*,但不推荐。 * 表示此处允许所有主机。

ALLOWED_HOSTS = ['your_ip']

【讨论】:

感谢@shafik,但这并没有解决主要问题,我已经修改了这个问题,因为我认为它可能根本不相关 https 工作正常吗?如果请求不是通过 HTTPS,通常会发生这种情况 不,这不起作用 - 你得到的连接不是私人页面

以上是关于AWS 托管的 django 站点的 SSL 证书和 https的主要内容,如果未能解决你的问题,请参考以下文章

如何在AWS中为自己的S3托管站点添加SSL/TSL证书(https)

如何将 godaddy ssl 证书添加到托管在 aws ec2 上的站点

如何在aws中为cname设置ssl证书?

如何在 AWS EC2 和 ELB 上使用 Godaddy 注册的域实现 SSL 证书

子域发布AWS通配符证书

使用 SSL 的 AWS 静态网站未正确路由