近期升级了mac系统,从10到12。发现charle居然不能抓包了。
https的请求包全部失败,页面提示非可信网络。
这里整理一下,亲测有效
第一步 mac重新配置证书
安装证书的时候发现不能写入钥匙串的错
正确用法:
解锁钥匙串
reset证书
最后再进行安装最上面的安装,然后将证书改成信任。
第二部,如果以上的操作还不能用,还要重新设置iphone上的证书
在手机上访问http://chls.pro/ssl 下载证书并安装
如果不能下载的话,用电脑访问下载后,发到邮箱。再通过手机上的safari浏览器打开即可。最后一步设置信任。
成功前后的截图:
补充下CA证书:
证书就是由认证机构,采用它们自己的私钥,对发送方的公钥和发送方的信息进行数字加密。各大CA(认证机构)的证书已经默认被添加到了浏览器和操作系统中。
1 服务器生成自己的密匙对——公钥和私钥
2 服务器在认证机构注册自己的公钥
3 认证机构(CA)用自己机构的私钥对,服务器的公钥进行数字签名并生成证书(里面带了这个签名过得公钥和服务器一些信息)
4 认证机构把证书给客户端
5 客户端用认证机构的公钥验证数字签名
6 认证成功后用里面带的服务器的公钥加密并发消息给服务器
7 服务器用自己的私钥解密
抓包软件为什么要导入证书
我们如果用过Charles、Fiddler或者其它抓包软件,那么一定对抓HTTPS包需要导入抓包软件的证书的流程不陌生,那么为什么它能解密HTTPS数据,为什么它需要导包呢?看以下流程:
1 客户端发一个HTTPS请求,被Fiddler拦截,Fiddler伪装成客户端发请求给服务器
2 服务器 向 假装成客户端的FIddler返回了CA证书
3 Flidder自己制作了一张证书,假装服务器给客户端发了自己做的证书。
4 客户端拿到Fildder做的假证书并用认证机构的公钥验证数字签名,得到Fiddler假冒的公钥,然后用其加密发送请求
5 Fiddler用自己的私钥解密获取请求数据
6……
这样的话Fiddler能完全获取解析到双方加密的数据。