欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

记录一次处理https监听不正确的过程

来源: 作者: 时间:2019-02-24 21:37 点击: 我要投稿
广告位API接口通信错误,查看德得广告获取帮助

今天开发反馈在测试金山云设备的时候遇到了这样的一个现象:
wget https://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8
--2017-07-26 11:49:26--  https://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8 
Resolving funchlscdn.lechange.cn... 120.92.158.134
Connecting to funchlscdn.lechange.cn|120.92.158.134|:443... connected.
OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Unable to establish SSL connection.
爆“error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol”的错误,就是在当向只提供http的服务发送https请求造成的。
#ping funchlscdn.lechange.cn,获得了这个域名对应的IP之后,返回到金山云的控制台,发现这个IP是一个负载均衡,但是这个负载均衡配置的时候对80端口是http协议,而对443端口还是http协议,于是更改成https,重新测试之后,发现错误变成了这样:
[root@js-develop ~]# wget https://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8
--2017-07-26 16:08:15--  https://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8
Resolving funchlscdn.lechange.cn... 120.92.158.134
Connecting to funchlscdn.lechange.cn|120.92.158.134|:443... connected.
HTTP request sent, awaiting response... 502 Bad Gateway
2017-07-26 16:08:15 ERROR 502: Bad Gateway.
在浏览器打开效果如图:
502 Bad Gateway 
The proxy server received an invalid response from an upstream server.
  _____ 
KSYUN ELB 1.0.0
同时发现金山云负载均衡里对nginx的8000健康检查是“异常”。但是使用http访问却是可以的,效果如下:
[root@js-develop ~]# wget http://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8
--2017-07-26 15:31:55--  http://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8
Resolving funchlscdn.lechange.cn... 120.92.158.134
Connecting to funchlscdn.lechange.cn|120.92.158.134|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://120.92.133.76:8090/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8 [following]
--2017-07-26 15:31:55--  http://120.92.133.76:8090/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8
Connecting to 120.92.133.76:8090... connected.
HTTP request sent, awaiting response... 200 OK
Length: 66 [application/x-mpegURL]
Saving to: “dev_20170726085033_lpxh73ezzb92xxa8.m3u8”
100%[========================================================================================================================================================>] 66          --.-K/s   in 0s     
2017-07-26 15:31:55 (3.02 MB/s) - “dev_20170726085033_lpxh73ezzb92xxa8.m3u8” saved [66/66]
于是就叫来开发问一下http和https详细的流程,开发说在http里,设计路线如下:

http(80)->开发模块(9001)
而在https里,设计路线如下:

https(443)->nginx(8000)->开发模块(9001)
这时候就发现了问题,原来最早的时候金山云是没有配置https证书的,于是开发们就用nginx的8000端口去监听ssl这样达到https证书的效果,但是后来金山云控制台添加了https证书,就不再需要nginx去配置ssl证书了,再去https监听8000这一步也就是错误的了,于是在负载均衡那里改成了:

https(443)->开发模块(9001)
同时关闭了nginx,这时候再来测试一下https请求,就成功了!

其实如果非要用nginx的ssl证书的话,那么的套路就是:开启nginx,但是在负载均衡那里使用tcp协议去监听nginx的8000端口,这样一样能达到效果。
 

今天开发反馈在测试金山云设备的时候遇到了这样的一个现象:
wget https://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8
--2017-07-26 11:49:26--  https://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8 
Resolving funchlscdn.lechange.cn... 120.92.158.134
Connecting to funchlscdn.lechange.cn|120.92.158.134|:443... connected.
OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Unable to establish SSL connection.
爆“error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol”的错误,就是在当向只提供http的服务发送https请求造成的。
#ping funchlscdn.lechange.cn,获得了这个域名对应的IP之后,返回到金山云的控制台,发现这个IP是一个负载均衡,但是这个负载均衡配置的时候对80端口是http协议,而对443端口还是http协议,于是更改成https,重新测试之后,发现错误变成了这样:

无奈人生安全网

[root@js-develop ~]# wget https://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8
--2017-07-26 16:08:15--  https://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8
Resolving funchlscdn.lechange.cn... 120.92.158.134
Connecting to funchlscdn.lechange.cn|120.92.158.134|:443... connected.
HTTP request sent, awaiting response... 502 Bad Gateway
2017-07-26 16:08:15 ERROR 502: Bad Gateway.
在浏览器打开效果如图:
502 Bad Gateway 
The proxy server received an invalid response from an upstream server.
  _____ 
KSYUN ELB 1.0.0
同时发现金山云负载均衡里对nginx的8000健康检查是“异常”。但是使用http访问却是可以的,效果如下:
[root@js-develop ~]# wget http://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8
--2017-07-26 15:31:55--  http://funchlscdn.lechange.cn/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8 copyright 无奈人生
Resolving funchlscdn.lechange.cn... 120.92.158.134
Connecting to funchlscdn.lechange.cn|120.92.158.134|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://120.92.133.76:8090/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8 [following]
--2017-07-26 15:31:55--  http://120.92.133.76:8090/LCLR/2K02135PAK01979/0/0/20170726085033/dev_20170726085033_lpxh73ezzb92xxa8.m3u8
Connecting to 120.92.133.76:8090... connected.
HTTP request sent, awaiting response... 200 OK
Length: 66 [application/x-mpegURL]
Saving to: “dev_20170726085033_lpxh73ezzb92xxa8.m3u8”
100%[========================================================================================================================================================>] 66          --.-K/s   in 0s     
2017-07-26 15:31:55 (3.02 MB/s) - “dev_20170726085033_lpxh73ezzb92xxa8.m3u8” saved [66/66] 内容来自无奈安全网
于是就叫来开发问一下http和https详细的流程,开发说在http里,设计路线如下:

http(80)->开发模块(9001)
而在https里,设计路线如下:

https(443)->nginx(8000)->开发模块(9001)
这时候就发现了问题,原来最早的时候金山云是没有配置https证书的,于是开发们就用nginx的8000端口去监听ssl这样达到https证书的效果,但是后来金山云控制台添加了https证书,就不再需要nginx去配置ssl证书了,再去https监听8000这一步也就是错误的了,于是在负载均衡那里改成了:

https(443)->开发模块(9001)
同时关闭了nginx,这时候再来测试一下https请求,就成功了!

其实如果非要用nginx的ssl证书的话,那么的套路就是:开启nginx,但是在负载均衡那里使用tcp协议去监听nginx的8000端口,这样一样能达到效果。
 
www.wnhack.com

。 (责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。