You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon EC2监听HTTPS请求并转发至SpringBoot应用的实现方法咨询

解决方案总览

目前有两种主流实现方案,你可以根据业务规模和成本要求选择:

方案一:EC2实例部署Nginx反向代理(适合中小流量、成本敏感场景)

该方案直接在现有EC2上部署反向代理服务完成SSL卸载和请求转发,无需额外采购AWS服务:

  • 第一步:申请SSL证书
    可通过Let's Encrypt申请免费域名证书,或在AWS Certificate Manager(ACM)申请免费证书,证书绑定的域名需和你调用后端的域名完全一致。
  • 第二步:EC2实例安装Nginx
    以Amazon Linux 2系统为例,执行安装命令:
    sudo yum install nginx -y
  • 第三步:配置Nginx反向代理规则
    在/etc/nginx/conf.d/目录下新建springboot-proxy.conf配置文件,添加如下内容:
    server {
        listen 443 ssl;
        server_name 你的后端域名; # 替换为实际使用的域名,如api.xxx.com
    
        # 替换为你自己的SSL证书文件路径
        ssl_certificate /etc/ssl/certs/your_domain_fullchain.pem;
        ssl_certificate_key /etc/ssl/private/your_domain_privkey.pem;
    
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
    
        location / {
            proxy_pass http://127.0.0.1:8080; # 转发到本地SpringBoot的8080端口
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    
  • 第四步:调整EC2安全组规则
    入站规则开放443端口(HTTPS)的公网访问权限,8080端口仅允许127.0.0.1访问,避免SpringBoot端口直接暴露在公网。
  • 第五步:验证配置并启动服务
    执行命令校验Nginx配置是否合法:
    sudo nginx -t
    无报错的话执行重启命令生效配置:
    sudo systemctl restart nginx
    同时设置Nginx开机自启:
    sudo systemctl enable nginx

配置完成后即可实现所需转发效果:POST https://xxx.xxx.xxxx:443/user/signin 自动转发到 http://127.0.0.1:8080/user/signin

方案二:AWS应用负载均衡(ALB)方案(适合中大规模流量、需要高可用的生产场景)

该方案就是你提到的负载均衡处理HTTPS的方案,优势是SSL卸载由ALB完成,不需要在EC2上维护证书,还支持后续多EC2实例扩容:

  • 第一步:在ACM中为你的后端域名申请免费SSL证书,完成域名所有权验证。
  • 第二步:创建互联网面向型ALB,监听器配置443 HTTPS端口,绑定刚才申请的ACM证书。
  • 第三步:创建HTTP协议的目标组,端口设置为8080,将部署SpringBoot的EC2实例加入目标组,健康检查配置为SpringBoot的可访问路径(如自定义的健康接口)。
  • 第四步:调整安全组规则:ALB的安全组开放443端口公网访问,EC2实例的安全组仅允许ALB的安全组访问8080端口,避免公网直接访问SpringBoot。
  • 第五步:将你的后端域名解析到ALB的CNAME地址即可。

注意事项

  • 两种方案都不需要修改SpringBoot的任何配置,SpringBoot保持默认监听8080 HTTP端口即可。
  • 生产环境建议关闭EC2的22端口公网访问,改用AWS Session Manager登录实例,提升安全性。
  • 若使用ALB方案,不需要在EC2上额外配置SSL证书,所有HTTPS加解密操作都由ALB完成,降低EC2的性能开销。

内容的提问来源于stack exchange,提问作者Ao Jiao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:36:03