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

启用SSL的AWS ALB下Angular与SpringBoot通信故障求助

问题解决:AWS EKS中Angular(HTTPS)调用SpringBoot(HTTP)失败的配置缺失项

核心原因

浏览器的混合内容安全策略会阻止HTTPS页面发起HTTP请求,这是浏览器层面的强制安全限制,和SpringBoot的CORS配置无关——即使CORS配置正确,只要请求是HTTP协议,浏览器就会直接拦截。

必须补充的配置项

1. 切换SpringBoot的调用地址为HTTPS

  • 把Angular应用中配置的API请求地址,从原SpringBoot的HTTP地址替换为其HTTPS ALB域名。比如将http://springboot-service.example.com/api改成https://springboot-https-alb.example.com/api。
  • 若地址是硬编码在Angular代码中,需修改后重新构建部署;若用环境变量配置,直接更新环境变量指向HTTPS域名即可。

2. 修正SpringBoot的CORS配置

即使已配置CORS,需适配HTTPS场景调整:

  • 将allowedOrigins设置为Angular的HTTPS域名(比如https://angular-alb.example.com),而非原HTTP地址。
  • 若业务需要携带Cookie等凭证,需将allowCredentials设为true;同时确保allowedMethods包含业务用到的所有HTTP方法(GET/POST/PUT等)。

示例SpringBoot CORS配置代码:

@Configuration
public class CorsConfig {
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        
        // 替换为你的Angular HTTPS域名
        config.addAllowedOrigin("https://angular-alb.example.com");
        config.addAllowedMethod("*");
        config.addAllowedHeader("*");
        config.setAllowCredentials(true);
        
        source.registerCorsConfiguration("/**", config);
        return new CorsFilter(source);
    }
}

3. 验证ALB与Ingress配置

  • 确认SpringBoot的ALB已正确配置HTTPS监听器,关联AWS ACM证书,且监听器将HTTPS流量转发到Pod的HTTP端口(由ALB完成SSL终止)。
  • 若使用Ingress,检查Ingress规则是否正确映射HTTPS路径到后端Service,且Ingress已关联正确的ACM证书。

4. 安全组与网络策略检查

  • 确保SpringBoot的ALB安全组允许来自客户端或Angular ALB的443端口流量。
  • 若EKS配置了NetworkPolicy,需允许Angular客户端(或其ALB)与SpringBoot Service/端口的通信。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:45:42