Spring 在 AWS Fargate 上使用 HTTPS 启动应用程序
Spring Boot Application with HTTPS on AWS Fargate
我在 ECS 集群 + ALB 中的 AWS Fargate 上有一个 Spring 引导应用程序 运行ning,流程如下:
ALB (443/HTTPS) -> Spring Boot Application (8080:HTTP)
所以,我想在我的应用程序中启用 HTTP/2,但为此,我需要我的应用程序在 HTTPS (TLS/SSL) 上 运行。
一旦我的域附加到 ALB 而不是直接在我的 task/container 上,我如何在 AWS Fargate 上配置证书?
为了能够实现这一点,您需要配置 ALB 以终止证书 1。在 ALB 终止 SSL 后,您将需要 ALB 使用 HTTPS 通过端口 443“端口可以更改为另一个”将流量转发到您的服务正在侦听的后端“Fargate”。
Client<----HTTPS---->ALB<----HTTPS---->ECS fargate in Target Group
您的容器任务需要 SSL 证书。您需要从第三方供应商处为您的域购买证书,例如 Go-daddy,因为来自 Amazon Certificate manager 的证书只能与 AWS 管理的服务(例如 ALB、CloudFront 等)一起使用。2
此 SSL 配置需要在 docker 个图像中进行,类似于您任务的任何 Web 服务器。
我们可以考虑的另一个选择是考虑使用 Envoy。请参阅此处的博客:“使用 Envoy 对 ECS 中的容器进行全程加密”。 3
我在 ECS 集群 + ALB 中的 AWS Fargate 上有一个 Spring 引导应用程序 运行ning,流程如下:
ALB (443/HTTPS) -> Spring Boot Application (8080:HTTP)
所以,我想在我的应用程序中启用 HTTP/2,但为此,我需要我的应用程序在 HTTPS (TLS/SSL) 上 运行。
一旦我的域附加到 ALB 而不是直接在我的 task/container 上,我如何在 AWS Fargate 上配置证书?
为了能够实现这一点,您需要配置 ALB 以终止证书 1。在 ALB 终止 SSL 后,您将需要 ALB 使用 HTTPS 通过端口 443“端口可以更改为另一个”将流量转发到您的服务正在侦听的后端“Fargate”。
Client<----HTTPS---->ALB<----HTTPS---->ECS fargate in Target Group
您的容器任务需要 SSL 证书。您需要从第三方供应商处为您的域购买证书,例如 Go-daddy,因为来自 Amazon Certificate manager 的证书只能与 AWS 管理的服务(例如 ALB、CloudFront 等)一起使用。2
此 SSL 配置需要在 docker 个图像中进行,类似于您任务的任何 Web 服务器。
我们可以考虑的另一个选择是考虑使用 Envoy。请参阅此处的博客:“使用 Envoy 对 ECS 中的容器进行全程加密”。 3