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

简介: 使用阿里云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。

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
26天前
|
缓存 安全 网络协议
一起深入了解http和https的区别
HTTP适合于非敏感信息的传输,而HTTPS则是在要求安全性、隐私保护及信任机制的现代互联网环境中不可或缺的标准配置。随着网络安全意识的提高和技术的发展,越来越多的网站和服务都转向使用HTTPS,力求在提供便捷服务的同时保障用户数据的安全。HTTPS将成为未来的基本选择。
35 0
一起深入了解http和https的区别
|
3天前
|
缓存 安全 网络协议
【面试必备】HTTP和HTTPS是什么?有什么差异?
HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)是用于在互联网上传输数据的协议。它们都是应用层协议,建立在TCP/IP协议栈之上,用于客户端(如浏览器)和服务器之间的通信。
11 2
|
19天前
|
安全 数据安全/隐私保护
深入解析:HTTP和HTTPS的三次握手与四次挥手
在这些握手和挥手过程中,双方交换信息,协商参数,建立或关闭连接,以保证数据的可靠传输。HTTPS在此基础上加入了数字证书验证和加密通信,增加了安全性。这些步骤确保了HTTP和HTTPS协议的通信过程的稳定和安全。
110 0
|
21天前
|
运维 监控 算法
slb监听协议http
SLB的HTTP监听器用于处理HTTP请求,配置时选择协议类型为HTTP和前端端口(如80)。SLB根据负载算法将请求转发至健康后端服务器,并支持会话保持。通过`X-Forwarded-For`和`X-Forwarded-Proto`头处理请求信息。由于不涉及SSL/TLS,数据传输不安全,推荐升级至HTTPS以加密通信。SLB提供性能监控和故障排查工具,帮助运维管理。
19 5
|
26天前
|
数据采集 缓存 前端开发
http和https请求服务器的时候在请求头部分都带什么到服务器呢?
HTTP和HTTPS请求头基本结构相似,HTTPS多了一层SSL/TLS加密。常见请求头如Accept(指定内容类型)、Authorization(身份验证)、Cookie(会话跟踪)、User-Agent(标识用户代理)等。HTTPS特有的头包括Upgrade-Insecure-Requests(升级到HTTPS)、Strict-Transport-Security(强制使用HTTPS)、Sec-Fetch-*(安全策略)和X-Content-Type-Options、X-Frame-Options等(增强安全性)。实际应用中,请求头会根据需求和安全策略变化。
18 0
|
1月前
|
机器学习/深度学习 人工智能 监控
视觉智能平台常见问题之http转https便捷的转换如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
20 0
|
1月前
|
安全 算法 网络协议
一文搞懂HTTP与HTTPS
一文搞懂HTTP与HTTPS
|
1月前
|
存储 缓存 安全
https跳过SSL认证时是不是就是不加密的,相当于http?
https跳过SSL认证时是不是就是不加密的,相当于http?
117 0
|
7天前
|
Java
java原生发送http请求
java原生发送http请求
|
14天前
|
网络协议 Linux iOS开发
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
37 1