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

Java Lambda调用带自定义证书的内部ALB遇SSL证书匹配问题求助

解决Java Lambda调用内部ALB的SSL证书匹配问题

你的问题核心是:调用ALB时使用的AWS托管DNS域名(internal-name-account.eu-west-2.elb.amazonaws.com)不在ALB证书的Subject Alternative Names(SAN)列表里(证书只包含*.example.com),导致SSL主机验证失败。以下是几种无需禁用SSL验证的解决方案:

方案一:用Route 53私有托管区配置私有域名

这是生产环境最常用的方案,通过给ALB绑定私有域名匹配证书规则:

  • 在Route 53创建与Lambda所在VPC关联的私有托管区,域名设置为example.com(已有对应私有托管区可直接复用)。
  • 在托管区添加一条CNAME记录,将自定义子域名(比如internal-alb.example.com)指向ALB的AWS托管DNS名称。
  • 确认Lambda所在VPC的DHCP选项集使用AWS默认域名服务器,确保Lambda能解析私有托管区的域名。
  • 修改Lambda代码,用internal-alb.example.com代替原AWS ELB域名发起请求,此时证书的*.example.com会匹配该私有域名,SSL验证正常通过。

方案二:使用AWS CloudMap实现服务发现

适合需要动态管理服务的场景,通过服务发现给ALB分配合规域名:

  • 创建一个私有命名空间,域名设置为example.com并关联Lambda所在的VPC。
  • 在该命名空间下注册ALB为服务实例,选择ALB作为服务的网络资源,自动关联其DNS记录。
  • Lambda通过CloudMap分配的服务域名(比如alb-service.example.com)调用ALB,该域名属于*.example.com范围,与证书匹配。

方案三:扩展证书的SAN列表(不推荐)

可以将ALB的AWS托管DNS域名添加到证书的SAN中,但存在明显弊端:

  • ALB的AWS域名是自动生成的,若后续ALB重建(比如修改配置、跨AZ迁移),域名可能变更,需要重新更新证书,维护成本高。
  • 操作上需重新申请或更新SSL证书,添加internal-name-account.eu-west-2.elb.amazonaws.com到SAN列表,再重新绑定到ALB。

注意:禁用SSL主机验证会跳过证书域名匹配检查,存在中间人攻击风险,生产环境绝对不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:50:05