未解之谜--HTTPS协议POST数据到CDN节点异常的排查

背景信息:

   1,特定ECS实例往CDN节点上post 数据走https协议失败,返回curl: (52) Empty reply from server
   2,透过cdn直接post源站正常(源站仅支持http协议)
   3,其他ECS post cdn节点正常
   4,切换cdn节点进行post也不行
  示意图:(画的比较渣,大家海涵)

未解之谜--HTTPS协议POST数据到CDN节点异常的排查

排查过程:

1,CDN回源走的80端口,进行抓包排查(过滤特殊的测试url)
过滤条件 “ http contains "testYjyCallback"”

未解之谜--HTTPS协议POST数据到CDN节点异常的排查

根据抓包确认,问题出现在客户端到cdn这两点之间,因为实际的请求没有回源(看到的成功的请求是正常的机器,只有一个客户端post失败)

2,客户端抓包,对比正常的https请求的包和异常的包
异常
未解之谜--HTTPS协议POST数据到CDN节点异常的排查

正常
未解之谜--HTTPS协议POST数据到CDN节点异常的排查

注意:正常的包发送的tlsv1.2版本,异常的包发送的是tlsv1的版本

3,客户端手动指定curl证书版本 curl -1 ,访问成功

curl --data "param1=value1&param2=value2" https://gun***6.m****bx.com/Mobile/Test/testYjyCallback --tlsv1.2

注意:--tlsv1.2等同于-1,还可以发送--tlsv1.0 --tlsv1.1

未解之谜--HTTPS协议POST数据到CDN节点异常的排查

4,抓包可以看到指定的-1实际请求https协商是tlsv1.2
未解之谜--HTTPS协议POST数据到CDN节点异常的排查

5,客户端测试指定tls版本 --tlsv1.0 测试不通过,其他机器使用tlsv1.0到cdn同一个节点正常。

未解之谜:判断客户端的curl版本或者openssl版本可能存在兼容性问题导致

上一篇:Freebsd for ECS 系统盘扩容示例


下一篇:记一次审核时间异常引发的惊天...