AWS ALB HTTP转HTTPS重定向:访问HTTP域名显示非安全连接如何解决?
问题成因
- 浏览器原生HTTP安全标记规则
Chrome、Edge、Firefox等主流现代浏览器默认会对所有使用HTTP明文协议的站点在地址栏标注「不安全」标识。访问http://sales.company.com时,浏览器会先和ALB的80端口建立HTTP连接,在拿到重定向响应前就会触发该安全提示,跳转到HTTPS站点后标识才会恢复正常。 - 重定向配置逻辑错误
你当前给出的HTTP监听器配置中,RedirectConfig.Path字段写为'/#{path}',而#{path}变量本身已经包含路径开头的斜杠(比如原请求路径为/order,#{path}的取值就是/order),拼接后会得到//order格式的异常路径,部分浏览器会将双斜杠开头的路径识别为协议相对URL,导致跳转逻辑异常,触发安全警告。
修复方案
- 修正重定向配置
移除Path字段中多余的前置斜杠,修改后的配置参考如下:
LBListener: Type: AWS::ElasticLoadBalancingV2::Listener Properties: DefaultActions: - Type: 'redirect' RedirectConfig: Protocol: 'HTTPS' Port: 443 Host: '#{host}' Path: '#{path}' Query: '#{query}' StatusCode: 'HTTP_301' LoadBalancerArn: 'LBArn' Port: 80 Protocol: 'HTTP'
- 配置HSTS彻底避免HTTP请求
在HTTPS监听器的响应规则中添加Strict-Transport-Security响应头,示例取值为max-age=31536000; includeSubDomains。配置后用户只要成功访问过一次HTTPS站点,后续浏览器会直接在本地将HTTP请求转换为HTTPS请求,不会再向ALB发送HTTP请求,从根源避免HTTP阶段的安全提示。 - 清理缓存验证效果
301属于永久重定向,浏览器会长期缓存旧的重定向规则,配置修改后建议清理浏览器缓存或者使用无痕模式测试,避免旧缓存干扰验证结果。
内容的提问来源于stack exchange,提问作者user10916892
相关产品推荐
相关产品推荐

