在ec2实例中,服务器返回https流量的最简单方法是什么?

时间:2019-11-09 05:37:54

标签: java linux amazon-web-services amazon-ec2 https

我有一个在EC2实例(ubuntu-bionic-18.04-amd64)中运行的Springboot应用程序。该程序在运行时会在默认端口8080上返回JSON响应。 该网址看起来像http://ec2-3-17-69-122.us-east-2.compute.amazonaws.com:8080/users/rayyanshaji/todos/

我需要完成的是https而不是http,以便前端UI接受传入的https流量。

到目前为止我尝试过的是: 从AWS Route 53获得了我自己的域名,并使用ACM(Amazon Certificate Manager)获得了证书,并使用它在Elastic Load Balancer中创建了入站HTTPS 443侦听器。 添加了安全组,该安全组允许端口80和443上的入站流量。

我知道上述步骤将无效,因为这是我运行netstat -tulpn命令的结果

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
udp        0      0 127.0.0.53:53           0.0.0.0:*                           -
udp        0      0 172.31.39.227:68        0.0.0.0:*                           -

似乎我的服务器没有配置为接受https请求或发出https响应。

由于我不是使用linux的专家,所以我现在很困在这里。我刚刚开始学习在EC2实例上的部署。我搜索了很多解决方案,但很少能在Java上找到任何东西。

我确实需要修复此障碍,以便我可以恢复项目的开发。任何建议,将不胜感激。 预先感谢。

1 个答案:

答案 0 :(得分:1)

您走在正确的道路上,可以使用HTTPs侦听器和ACM证书配置负载均衡器。

首先,我必须告诉您,您的实际ec2实例无需使用HTTPS,因为这将由负载均衡器处理。负载平衡器将充当所有传入连接的SSL终结器。因此,所有SSL握手都将在客户端和负载平衡器之间进行。在负载均衡器的下游,它只能与您的ec2实例通过http端口进行通信,这意味着请求是否来自负载均衡器上的HTTP / HTTPs端口,它只能转发到HTTP端口上的EC2实例。

因此,只需将负载均衡器目标组配置为在不同的HTTP / HTTPs端口上接收输入请求,然后在单个HTTP端口上转发到您的EC2实例。