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

ALB目标组443/8443端口健康检查失败,Spring Boot部署求助

EC2+ALB+Route53部署Spring Boot HTTPS服务问题排查与解决

问题1:ALB目标组设443端口健康检查失败

核心原因是你之前Spring Boot因权限问题未启动成功,EC2上443端口无进程监听,健康检查自然失败。补充排查点:

  • 确认EC2实例安全组:必须允许ALB所属安全组访问443端口,不能只配置ALB的安全组
  • 先解决Spring Boot绑定443端口的权限问题(参考问题2方案),再验证EC2本地443端口是否有服务响应

问题2:Spring Boot绑定443端口权限问题的合法方案

类Unix系统1-1024端口需root权限,推荐两种安全方案:

  1. 端口转发(iptables)
    让Spring Boot监听非特权端口(如8443),用iptables将443流量转发过去:
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443

安装iptables-persistent保存规则,避免重启失效。
2. authbind工具授权

  • 安装authbind:sudo apt install authbind(Debian/Ubuntu),RHEL系使用对应yum包
  • 创建端口权限文件:
sudo touch /etc/authbind/byport/443
sudo chmod 755 /etc/authbind/byport/443
sudo chown your-user:your-group /etc/authbind/byport/443
  • 用authbind启动应用:authbind --deep java -jar your-app.jar
  1. 不推荐直接用root启动,生产环境安全风险极高。

问题3:监听8443端口但ALB目标组不健康

按以下步骤排查:

  • 检查健康检查配置
    • 协议必须选HTTPS,因为Spring Boot在8443用的是HTTPS,选HTTP会直接被拒绝
    • 健康检查路径要正确:如果用Spring Boot Actuator,需先开启management.endpoints.web.exposure.include=health,然后路径填/actuator/health;如果自定义了健康接口,填对应路径,确保返回200状态码
    • 确认目标组健康检查端口设为8443,别和ALB的监听端口混淆
  • 手动验证EC2本地响应
    • 在EC2内部执行curl https://localhost:8443/actuator/health,查看是否返回200
    • 用AWS Systems Manager登录EC2,访问自身私有IP+8443端口,确认服务正常
  • 检查安全组与ACL
    • EC2实例安全组要允许ALB的安全组访问8443端口
    • VPC网络ACL入站规则允许tcp 8443,出站规则允许响应的tcp流量(通常默认开放,但需确认)

额外配置要点

  • ACM证书必须和ALB在同一AWS区域,且已关联到ALB的443端口监听
  • Route53的CNAME记录要指向ALB的域名,不是EC2的公网IP
  • Spring Boot HTTPS配置示例(application.properties):
server.port=8443
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:your-cert.p12
server.ssl.key-store-password=your-cert-password
server.ssl.key-alias=your-cert-alias

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:25:18