lr使用linux Generator测试https莫名报 SSL protocol error when attempting to connect with host

  接收一个性能测试任务,各类缘由须要使用linux agent产生压力。诡异的事发生了,一样脚本windows回放成功,使用linux agent报以下错误,脚本回放失败。linux

Action.c(33): Error -27778: SSL protocol error when attempting to connect with host "xxx.xxx.xxx" 

   各类查找缘由:nginx

  方法1:lr设置以下,无效由于只在windows生效linux根本不起做用web

runtime setting -> Internet protocol->perference 选中 WinINet replay instead of sockets

  方法2:在脚本添加以下内容,无效由于此命令只是告诉lr使用ssl版本算法

web_set_sockets_option("SSL_VERSION","TLS");

  方法3:根据错误提示修改各类ssl版本,F1后根据文档修改“The SSL version preferences 2, 3, 2 and 3, TLS.”,依然无效windows

  方法4:怀疑 nginx ssl配置问题,乱加了一通依然无效安全

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  一通乱搞已经半天过了去,没办法只能放弃直接压力80,好在需求压力不大nginx不是问题。bash

 

  今天突然有时间继续解决,竟然让我蒙对了。服务器

  第一步:经过 fiddler + postman 转lr脚本的方式,看看是否是我写的脚本有问题。问题依然存在。socket

  第二步:使用 tcpdump 抓包因为本人不会使用tcpdump看报文,没办法只能安装 wireshark 类工具查看。悲剧又开始了凭着老经验自认为win10上装不上wireshark,在win7虚拟机上安装,各类vc库报错。没办法在win10上安装了一下,竟然成功了。tcp

  第三步:开始抓包,先用windows产生压力抓个包,再用linux产生压力抓个包。

  windows没问题的包

   linux上有问题包,能够看出hello后服务器报错了,提示“TLSv1 Record Layer: Alert (Level: Fatal, Description: Handshake Failure)”这个提示没啥用,仍是不知道啥错误。

 

   第四步:没办法只能看握手报文了

   windows没问题的

  linux上有问题的报文,能够看除两个惟一的区别就是选用的加密算法不一样

  第五步:既然问题找到了那解决就简单了。能够有两个方式 a)在 nginx 中配置然他支持加密算法。b)在linux agent上配置让他用和windows同样的加密算法

  第六步:在nginx 服务器上,将原来的

ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;

  改成以下内容,再使用linux agent回访成功,这种改法仍是有问题,第一改后的加密算法有安全漏洞,第二两个算法对性能测试结论会有影响。今天累了改天有时间再看吧。

ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
相关文章
相关标签/搜索