【问题标题】:SSL cert for AWS domain?AWS 域的 SSL 证书?
【发布时间】:2020-11-29 09:19:33
【问题描述】:

我有一个后端服务正在 Fargate 中运行。我需要此服务在其负载均衡器上具有 SSL 证书,以便它可以与其他 HTTPS 服务通信。我创建了负载均衡器,它为我提供了一个 AWS 域 (my-cool-app.us-east-1.elb.amazonaws.com)。

现在,当我尝试通过 acm 请求证书时,它失败并显示“需要额外验证”。所以我不确定是否可以在不注册自定义域的情况下向此负载均衡器添加 SSL 证书?

另外,这是一个 Django 应用程序,除了将其保留为 runserver 之外,我没有做任何其他事情,我知道这对生产不利,但我只需要首先让它作为开发环境工作。我是否需要更改 Django 的运行方式才能使 SSL 工作?还是负载均衡器够用?

【问题讨论】:

    标签: django amazon-web-services django-rest-framework aws-fargate


    【解决方案1】:

    要对域使用 SSL,您需要控制该域。对于 AWS 托管证书服务 (ACM),您可以通过 DNS validationemail validation 进行验证,您必须拥有域控制才能进行验证。

    当您尝试将 ACM 用于 AWS 拥有的域时,AWS 的某个人需要批准 SSL(他们不会)。

    关于第二点,您所描述的是 SSL 卸载,其中负载平衡器将提供 HTTPS,然后在传输过程中终止加密。然后它将使用目标组中定义的协议和端口将请求转发到 Fargate 容器。

    您唯一需要考虑的是如何向用户显示,例如确保您网站上的所有 CSS、JS 和链接都是 HTTPS。您可以通过检查应用程序中的 X-Forwarded-Proto 标头来检测传入请求是否在负载均衡器上使用 HTTPS。

    【讨论】:

    • 好的,如果 AWS 拥有该域,我如何向它添加 SSL?我会改为将 Django 服务器作为 HTTPS 运行,并将负载均衡器留在端口 80 上吗?
    • 因此,假设您正在尝试获取 AWS ELB 域的 SSL,那么对 *.amazonaws.com 域具有域访问权限的人可以执行 DNS 验证。因此这最终会失败,因为亚马逊不会添加它:)
    • 您希望至少在从客户端到最外层资源的交互点上使用 HTTPS,因此您不希望在负载均衡器上使用 HTTP,而在目标上使用 HTTPS。 SSL 本身需要来自有效的 CA 和您的用户连接到的主机名,以确保安全:)
    • 好的,基本上,我需要先购买一个域名
    • 仅当您想安全显示时,否则您仍然可以将自签名 SSL 上传到 ACM。它只是不是有效的 CA,因此会显示为不安全,但允许您附加到 ALB
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 2020-10-06
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多