一、Fiddler抓包加密(ssl)接口

粗略记录下项目接口加密后的操作

 

1、ios手机

        1、PC端安装开发或运维提供的证书(一般有xxx.cer和xxx.p12);

        2、iOS手机提供了系统层面的设置,所以在确认证书安装好、代理设置没问题后,点击通用--关于本机,找到证书信任设置,将fiddler证书信任即可。

 

 

ios抓包 tcpdump iOS抓包ssl双向证书验证_java

 

 

 

2、安卓手机

  配置代理、安装证书后,往往发现,对app还是死活不能抓包,抓取的数据显示“Tunnel to......443”,如下图:

ios抓包 tcpdump iOS抓包ssl双向证书验证_java_02

 

方法一、众所周知,android 7.0+的系统同时应用设置targetSdkVersion >= 24的话,是因为android 7.0之后的应用是默认只信任系统证书,不信任用户证书,,所以找低于7.0系统的设备正常抓包就可以了


 

方法二、那就是使用Xposed+JustTrustMe。

  1. 具体步骤:
    ①下载virtualxposed和justtrustme.apk   
    链接:https://pan.baidu.com/s/1qliIu-XAGs4eikd814cn_Q
    提取码:love
  2. justtrustme.apk是插件,不会生成桌面图标,需要在virtualxposed的界面安装。
  3.  使用同样的安装方式安装需要抓包的app,就可以抓包啦 

备注:让fiddler不显示tunnel to xxx.xxx.xx.x:443,勾选Hide CONNECTs选项即可(如下图)

ios抓包 tcpdump iOS抓包ssl双向证书验证_抓包_03

 

 

 

 

 fiddler重新生成证书安装包,下载后直接安装即可

链接:https://pan.baidu.com/s/1mVH8gvZrAkU2VHyrzVEuFQ
提取码:l37u

二、jmeter设置

在实际工作中,我们大多数接口都是用的HTTPS来保证安全,使用jmeter测试HTTPS请求是如何配置证书呢?

方法一:最简单的方法,在选项里选择SSL管理器,然后选择相应的证书即可

ios抓包 tcpdump iOS抓包ssl双向证书验证_ios抓包 tcpdump_04

 

 

 

 

在弹出的选择框选择证书即可,亲测可以使用.p12证书,因为我们公司用的是p12类型证书,当发起HTTPS请求时,如果设置的有证书密码,会弹窗让你输入证书密码,然后就请求成功了

但如果重启了jmeter,下次请求时还要再次设置证书,还要输入密码,非常不方便,

方法二:在系统中修改配置来解决这个问题,

1、首先把p12证书改成jmeter支持的keystore证书,mac命令:

keytool -v -importkeystore -srckeystore xxxxxx.p12 -srcstoretype PKCS12 -destkeystore target.keystore -deststoretype JKS

xxxxxx.p12是源文件,target.keystore是转换后的证书名称

输入命令敲回车会让你设置target.keystore证书的密码,这个密码会在下面的配置中用到,会让你二次输入密码确认,然后会让你输入源文件的密码。设置成功后就会在当前文件夹下生产一个target.keystore的证书

2、进入jmeter的bin文件夹,修改system.properties文件

    2.1、把证书放在jmeter的bin文件夹下,我是在bin文件夹下创建了一个cer存放证书,图中使用了相对路径。

ios抓包 tcpdump iOS抓包ssl双向证书验证_.net_05

 

 

    2.2、设置javax.net.ssl.keyStore值为证书存放位置,javax.net.ssl.keyStorePassword的值为刚设置的证书密码。(注意默认javax.net.ssl.keyStore和javax.net.ssl.keyStorePassword是注释掉的,需要放开)修改完毕保存后重启jmeter,再次请求时就不需要再设置证书啦

ios抓包 tcpdump iOS抓包ssl双向证书验证_java_06

 

 

完美!!!!!!!