关于SLB使用中的HTTP转发HTTPS的挖坑解决

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
.cn 域名,1个 12个月
简介: 使用阿里云SLB自带的HTTP强制转发到HTTPS的小坑解决心得

起因

前些日子早上8点多突然接到合作客户的紧急电话,因为阿里云服务到期没有及时续费,导致后续操作中误删SLB和容器服务,经过小伙伴们通宵达旦的努力,还是未能完全恢复访问,希望能够过去一起看一下。
注:虽然最终的解决过程只花了不到3分钟,但确是走了一大段弯路,写下该文聊以纪念这段曲折的路程。

解决过程

顾不得收拾,马上驱车20公里到达现场,倾听小伙伴的情况后,开始按照如下思路逐一排查。
1.因为使用k8s容器服务,直接用容器外网IP访问,结果显示HTTP正常,HTTPS无法访问,报502错误,说明容器服务部署正常;
2.切换至域名访问,发现HTTP和HTTPS都访问不了;
3.通过ping确认域名指向ip,发现解析地址未指向SLB;
4.通过阿里域名解析服务(需要登录阿里云后才能访问)进行域名和SLB公网IP绑定;
5.重新通过域名访问,HTTP正常,HTTPS异常;
6.检查SSL证书,发现未在SLB中进行配置(注:SLB为新购服务器);
7.检查容器的yaml文件,确认已配置SSL证书,且没有设置nginx服务;
8.容器的yaml文件开启https及443端口,发现http异常,报502错误,https又正常了;
9.判定应该是SLB没有正确配置的原因。(奇怪为啥当初要进行SSL证书双重配置?)
于是到这里整个调查结束,大概花了20分钟;
注:因我对该项目不熟悉,且是2年前的服务器配置,最初人员都已经替换了几轮(估计是跳到阿里去了),更糟糕的是没有留下任何配置说明,
10.接下来开始设置SLB的HTTP强制转发到HTTPS,参考了阿里云的帮助文档之
简单路由-HTTP 协议变为 HTTPS 协议之一
简单路由-HTTP 协议变为 HTTPS 协议之二
HTTP重定向至HTTPS
palapala...
11.突然发现帮助教程和新的SLB配置页面有些不一样(注:之前都是通过nginx或者apache进行配置的,SLB上还是头一遭,为啥?因为小户人家要精打细算啊)。
教程页面如下
15354469412796_zh-CN.png
新的HTTP配置页面
微信图片_20191211222505.png
大家看见【监听转发】的开关了吗?对,它需要【展开高级配置】后才能看到,我们3人8只眼(别问我为什么多了2只眼)竟然生生的错过了。
12.于是找【监听转发】的按钮花了好久,一开始以为阿里把这个功能给阉割了,琢磨着又不是,反反复复,复复反反配置HTTPS,又配置HTTP,然后又折腾yaml文件,甚至小伙伴们都开始建议要不要在代码里面做个强制跳转,Oh,My God!
13.然事情总是那么的因缘际会,福至心灵。有时候很苦恼的问题对于程序员来说会突然幡然醒悟,
配置好HTTPS后,偶然间点了下【监听转发】的开关,然后kuakuakuakua,一顿操作猛如虎后,分别用HTTP和HTTPS访问域名,居然ok了,瞬间满心的欢喜,内心的奔腾,面对2个多小时的折腾,心想总算对得起十几年的手艺,没有给它丢脸。
微信图片_20191211223416.png
配置成功后的列表页面如下:
QQ截图20191211223808.png

总结

1.虽然是小问题,但是碰到坎的时候别钻牛角尖,有时候洗个脸看个书换个情绪真的会有福报。
2.要多翻阿里云的帮助文档,想起了java手册,html文档,MSDN的日子;
3.SLB配置强转换是有顺序的,先https,再http。删除的时候也是,先http再https,有依赖关系。
4.现在微信小程序,IOS应用包括谷歌等都开始强制使用HTTPS了,很奇怪为啥要把【强制转发】开关给掩藏起来(即通过点击高级配置后才能看到),阿里云的产品说很多客户的网站还是HTTP访问的占了多数,好吧!You Say You Yes。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
5天前
|
缓存 安全 网络协议
HTTP和HTTPS的区别有哪些?
本文简要总结了 HTTP 和 HTTPS 的区别,从概念、端口、连接方式、使用场景、安全性等多个角度进行了对比。HTTP 是无状态的、无连接的应用层协议,适用于一般性网站和性能要求较高的应用;HTTPS 则通过 SSL/TLS 层提供加密、认证和完整性保护,适用于涉及敏感信息和高安全性的场景。文章还讨论了两者在性能上的差异,包括握手和加密开销、缓存效果以及 HTTP/2 的多路复用技术。最终,根据具体需求选择合适的协议能够更好地平衡安全性和性能。
50 2
HTTP和HTTPS的区别有哪些?
|
18天前
url重写重定向所有http网址到https网址
url重写重定向所有http网址到https网址
21 4
|
28天前
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
66 7
|
1月前
|
安全 应用服务中间件 网络安全
简单比较 http https http2,我们要如何把http升级为https
【9月更文挑战第13天】本文对比了HTTP、HTTPS和HTTP/2的特点与适用场景。HTTP以明文传输,适合低安全要求的环境;HTTPS通过SSL/TLS加密,适用于电子商务等安全要求高的场景;HTTP/2采用二进制格式和多路复用,适合高性能Web应用。文章还详细介绍了将HTTP升级为HTTPS的步骤,包括申请和安装SSL证书、配置Web服务器、重定向HTTP流量到HTTPS以及测试HTTPS功能。升级到HTTPS可提高数据安全性和用户信任度。
61 13
|
15天前
将http和https的非www顶级域名301重定向至www
将http和https的非www顶级域名301重定向至www
19 0
|
16天前
|
安全 应用服务中间件 网络安全
修复HTTPS升级后出现 Mixed Content: The page at 'https://xxx' was loaded over HTTPS, but requested an insecure frame 'http://xxx'. This request has been blocked; the content must be served over HTTPS. 的问题
修复HTTPS升级后出现 Mixed Content: The page at 'https://xxx' was loaded over HTTPS, but requested an insecure frame 'http://xxx'. This request has been blocked; the content must be served over HTTPS. 的问题
|
1月前
|
安全 网络安全 数据安全/隐私保护
HTTP与HTTPS协议区别及应用场景
在互联网高速发展的今天,HTTP与HTTPS作为数据传输的基石,作用至关重要。HTTP允许客户端与服务器间传输超文本文档,但其数据传输过程未加密,存在安全隐患;HTTPS则在此基础上加入了SSL/TLS协议,实现了数据加密传输,增强了安全性,广泛应用于电子商务、网上银行、政府网站及社交媒体平台等涉及敏感信息传输的领域,有效保护了用户隐私和数据安全。随着网络安全意识提升,HTTPS正逐渐成为主流。
|
2月前
|
Linux Python
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
|
2月前
|
JavaScript 前端开发 Java
【Azure 环境】各种语言版本或命令,发送HTTP/HTTPS的请求合集
【Azure 环境】各种语言版本或命令,发送HTTP/HTTPS的请求合集
|
2月前
|
安全 网络协议 搜索推荐
http和https分别是什么?区别是什么?
http和https分别是什么?区别是什么?
81 0