【问题标题】:Spring Boot Application with HTTPS on AWS Fargate在 AWS Fargate 上使用 HTTPS 的 Spring Boot 应用程序
【发布时间】:2020-07-03 16:22:07
【问题描述】:

我有一个 Spring Boot 应用程序在 ECS 集群 + ALB 中的 AWS Fargate 上运行,流程如下:

ALB (443/HTTPS) -> Spring Boot Application (8080:HTTP)

所以,我想在我的应用程序中启用 HTTP/2,但要做到这一点,我需要我的应用程序在 HTTPS (TLS/SSL) 上运行。

如何在 AWS Fargate 上配置证书,一旦我的域附加在 ALB 中而不是直接附加在我的任务/容器上?

【问题讨论】:

    标签: spring-boot https amazon-ecs amazon-elb aws-fargate


    【解决方案1】:

    要实现这一点,您需要配置 ALB 以终止证书 1 。在 ALB 终止 SSL 后,您将需要 ALB 使用 HTTPS 通过端口 443“端口可以更改为另一个”将流量转发到您的服务正在侦听的后端“Fargate”。

    Client<----HTTPS---->ALB<----HTTPS---->ECS fargate in Target Group

    您的容器任务需要有 SSL 证书。您需要从第三方供应商处为您的域购买证书,例如 Go-daddy,因为来自 Amazon 证书管理器的证书只能用于 ALB、CloudFront 等 AWS 托管服务。2

    此 SSL 配置需要在 docker 映像中进行,类似于您的任务的任何 Web 服务器。

    我们可以考虑的另一个选择是考虑使用 Envoy。请参阅此处的博客:“使用 Envoy 在 ECS 中一直加密到容器”。 3

    【讨论】:

    • 但是,在我的容器中,我需要一个私有证书,对吗?由私有 CA 发出?或者我可以使用发送到我的域的公共证书吗?我相信 Envoy 不会帮助我,因为我真的不担心 ALB 和我的应用程序之间的流量,这只是一个副作用,真正的重点是:我真的需要我的应用程序运行在 HTTPS 上才能启用 HTTT v .2.
    • 您可以在容器中使用自签名证书。根据文档:“负载均衡器不关心您的实例的证书是自签名的还是由受信任的证书颁发机构颁发的,并且会接受提供给它的任何证书。” - docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
    猜你喜欢
    • 2022-07-28
    • 2016-12-24
    • 2017-09-28
    • 2015-12-24
    • 1970-01-01
    • 2019-02-22
    • 2018-05-29
    • 2015-03-13
    • 1970-01-01
    相关资源
    最近更新 更多