首页 > 解决方案 > Amazon EC2 - 监听 HTTPS 请求并重定向到 SpringBoot

问题描述

我有一个托管在 Amazon Amplify 上的前端 React 应用程序和一个托管在 Amazon EC2 上的后端 SpringBoot 应用程序。

我的域只能发送 https 请求,但 SpringBoot 默认是 http。我的问题是我的 EC2 实例如何监听 HTTPS 请求,然后重定向到 SpringBoot 中的 http 端口。

我检查了其他帖子,似乎您不应该将 SSL 添加到您的 SpringBoot 应用程序,而应该添加到它前面的负载均衡器。在今天结束时,这就是我想要的:

POST https: xxx.xxx.xxxx:443/user/signin
---> http: xxx.xxx.xxxx:8080/user/signin

- - - - - - - - - - - - - - - - - - - - 更新 - - - - - -------------------------------------------

Marcin 提供了有关如何解决此问题的顶级想法,谢谢!

我还附上了像我这样的人的分步解决方案,请参阅下面的答案

标签: amazon-web-servicesspring-boothttpamazon-ec2https

解决方案


如果您只想继续使用实例(没有负载均衡器或云端),那么您需要为它获取自己的域。然后,您必须为此使用注册一个有效的公共 SSL 证书,例如letsencyrpt。一旦你有了它,你可以在实例上设置 nginx 以接受 https 连接,并以 http 转发到你的 spring boot。

更简单的方法是使用应用程序负载均衡器。您仍然需要自己的域,但是一旦拥有它,您就可以轻松地从 AWS ACM 获得免费的 SSL 证书,然后将其部署在平衡器上。无需更改您的实例。所以它会是:

Client ---(HTTPS)---> ALB ---(HTTP)---> EC2

推荐阅读