正文
Jmeter 进行https证书处理的工作
背景
继续学习中,想着能够抓取一下https相关的信息
所以计划些一下处理过程
但是感觉自己这一块比较薄弱.
场景设计这一块应该是专业人去搞, 我这边先只是简单学习了解一下.
创建证书
要使用 keytool 工具创建证书
打开终端或命令提示符,并转到存储证书文件的目标目录。
运行以下命令来生成一个新的密钥库文件(.jks)并创建一个与密钥库关联的密钥对:
keytool -genkeypair -alias myjmeter -keyalg RSA -keystore jmeter_keystore.jks -validity 3650 -keysize 2048
在上述命令中,
-alias:指定密钥对的别名(这里使用 “mydomain”)。
-keyalg:指定使用的密钥算法(这里使用 RSA)。
-keystore:指定密钥库文件的名称(这里使用 “keystore.jks”)。
-validity:指定证书的有效期(这里使用 365 天)。
-keysize:指定密钥大小(这里使用 2048 位)。
运行该命令后,你将会提示输入一些相关信息,如密钥库密码、证书所有者信息等。
输入密钥库密码并确认。
接下来,你可能会被要求输入证书所有者信息,如姓名、组织、城市、省/州、国家/地区等。根据你的需要进行填写。
输入证书的密码并确认。该密码用于保护私钥,不同于密钥库密码。
根据需要,你可以选择输入其他可选信息或直接按回车键跳过。
完成以上步骤后,keytool 将生成密钥库文件(.jks)并在其中创建一个新的密钥对。
注意:在实际应用中,你可能需要使用专业的证书颁发机构(CA)来签发有效的证书。自签名证书只适用于测试和开发环境。
注意浏览器需要使用 cert的格式需要进行一步转换
keytool -exportcert -alias myjmeter -keystore jmeter_keystore.jks -file jmeter_keystore.cert
可以将这个命令导出的证书添加到 证书授信列表里面.
在 jmeter.properties 里面修改一下如下两个配置节:
注意可以将证书直接放到bin目录下面, 这样的话就可以节约很大的工作量了.
javax.net.ssl.keyStore=jmeter_keystore.jks
javax.net.ssl.keyStorePassword=Testxxxxxxxx
抓取https的方法
可以使用badboy进行抓取.然后导出为 jmeter使用的jmx文件
然后jmeter进行导入就可以了.
解决HSTS的问题的方法
1、Chrome浏览器地址栏中输:chrome://net-internals/#hsts
2、在Query HSTS/PKP domain处搜索www.baidu.com网站,
3、在“Delete domain security policies”处输入www.baidu.com,点击Delete
4、重新浏览“www.baidu.com”,点击“隐藏详情”,点击“继续前往www.baidu.com(不安全)”链接
注意最好是重启浏览器. 或者是使用edge/firefox
chrome的安全性要求比较高一些.
开启代理的方式方法
只能在测试计划处->右键添加->非测试元件
选择:HTTP代理服务器 尽心设置
需要注意 端口的信息
需要选择一个没有被使用的端口.
注意需要再右侧的
Test plan Creation
不能使用默认值, 需要修改一下 至少为: 当前的测试计划->http代理相关才可以打开
打开之后 就可以启动代理
然后自己的机器 浏览器设置上 对应的端口代理
然后打开网页就可以了.
注意上一步可以进行一下过滤.