背景
拦截http proxy的软件很多,如 Fiddler
,Charles
等,能够实现对http通信的拦截,可以查验Request和Response参数,特别是移动设备快速普及,此类软件逐渐被用于移动设备APP的网络请求拦截。
Mitmproxy的使用
安装方式
1 | brew install mitmproxy |
启动
1 | mitmweb |
清空请求
点击mitmproxy
点击new
可将所有的请求清空
拦截Https请求
如今很多APP都开始使用Https请求,以确保数据安全,默认无法拦截https的接口,这时我们就要配置证书。
需要电脑和手机端都安装证书
Mac安装证书
找到证书位置
1 | cd ~ |
双击安装其中的mitmproxy-ca-cert.pem
文件即可
Android安装证书
在你的移动设备上打开连接
,或者扫描下面的二维码,下载相应证书,然后安装。
Android 手机可以在“设置–>安全–>从SD卡安装证书”中安装刚才下载的证书。
不用的Android位置不一样,我们可以搜索从SD卡安装
找到对应的配置,选择下载的证书安装即可。
下载的位置默认在Downloads
文件夹中。
Charles的使用
下载地址百度云链接
密码:5v9y
Mac端安装证书
1) 安装证书
Help
–>SSL Proxying
–>Install Charles Root Certificate
安装即可
2) 配置需要证书的域名
Proxy
–>SSL Proxying Settings
–>SSL Proxying
中添加域名 比如
- Host:*.baidu.com
- Port:443
Android安装证书
Help
–>SSL Proxying
–>Install Charles Root Certificate on a Mobile Device or Remote Browser
设置手机代理 比如我的是
192.168.2.1:8888
在浏览器中打开
http://chls.pro/ssl
或者扫描如下二维码下载证书后安装 安装方式参见上文
代码中的配置
Retrofit/okhttp
客户端不对服务器证书做任何验证
1 | public static SSLSocketFactory getSSLSocketFactory() throws Exception { |
客户端验证证书
1 | public static SSLSocketFactory getSSLSocketFactory() throws Exception { |
OkGo
客户端不对服务器证书做任何验证
1 | OkHttpClient.Builder builder = new OkHttpClient.Builder(); |