jmeter制造安全证书

  对安全性有要求的网站一般使用https来加密传输的请求和响应。https离不开证书,关于证书不在多说。Apache的HttpClient支持https,

下面是官方的样例程序,程序中使用了my.store这个文件,

这个文件不是网站的证书,而是一份包含自己密码的自己的证书库。这个文件是需要自己生成的,使用jdk中的keytool命令可以很方便的生成my.store文件。步骤如下(以支付宝为例):

  1. 浏览器(以chrome为例)访问https://www.alipay.com/,点击域名左侧的小锁,可以查看支付宝的证书信息
  2. 将支付包的证书信息导出,证书格式有很多中,der、cer等。随便选择即可。
  3. 命令行或者shell执行 

keytool    

-import -alias "my alipay cert" 别名

-file www.alipay.com.cert 导出的证书   

-keystore my.store,自己起名

如果keytool命令不识别,去检查一下jdk的环境变量是否设置正确。

”my alipay cert”是个别名,随便取。

“www.alipay.com.cert”这个文件就是从浏览器中导出的支付宝的证书。

“my.store”是生成的自己 的证书库文件。回车执行,效果如下:

Jmeter是apache一款开源、小巧的性能测试工具,平时测试web http协议经常使用,其实jmeter同样支持ssl。方法如下:

  • 需要装有目标网站证书的密钥库,即filename.store(文件名随意).这个文件里包含目标网站的证书和自己的密码,这个东西需要我们自己生成,生成方法参见:CloseableHttpClient加载证书来访问https网站
  • 将生成好的filename.store放到随意目录中(比如/home/victor/filename.store)。修改jmeter配置文件,将filename.store路径和自己的密码配置进去,这里以jmeter-2.10为例。
  • 配置文件为apache-jmeter-2.10/bin/system.properties,配置如下:
    • # Keystore properties (client certificates)
    • # Location
    • javax.net.ssl.keyStore=/home/victor/filename.store //密钥库路径
    • #
    • #The password to your keystore
    • javax.net.ssl.keyStorePassword=yeetrack.com //这个是生成密钥库时,设置的密码
  • 重启jmeter,如果是自己填写请求,https的端口一般是443,不再是http的80端口(当然也不一定是443,这个是可以配置的)。构造一个https请求,应该可以发送出去了;由于添加了密钥库,jmeter也可以录制https的请求了。

        长按二维码识别关注,您的支持是我们最大的动力。        

        公众号:测试梦工厂

        QQ一群:300897805

        

原文地址:https://www.cnblogs.com/testdream/p/6159933.html