盒子
盒子
文章目录
  1. 解决思想
  2. 操作步骤
    1. 1、先用socket模块,在代理端口监听,一旦有客户端连接就新开一个线程处理连接
    2. 2、手机中设置代理,这一步和抓http的方式一样。
    3. 3、安装证书。(这一步必须建立在第二步的基础上,否则手机中无法下载charles根证书)
      1. 3.1、手机上安装charles根证书。
      2. 3.2、电脑上安装根证书
    4. 4、添加要监视的域名。
    5. 5、常见问题

HTTPS抓包

前序:http协议运行在TCP之上,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份;

https是运行在ssl/tls之上的http协议,ssl/tls运行在tcp之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。tls/ssl中使用了非对称加密,对称加密以及hash算法。

现在很多网站为了安全,都采用了绿色链接,那对于很多开发者,可能想看一些信息,或者对一些线上问题的排查就产生了一定的困扰,所以本文就讲一下如何利用charles对https抓包?

解决思想

  • charles官网提供了一个根证书,并且可以自动根据charles生成一个签名的服务器证书。
  • 客户端上安装好这个根证书,然后让操作系统信任他。

总结:charles 扮演一个代理服务器,那么所有客户端请求的服务器证书就是 charles 自动生成的代理服务器证书。如果 charles 的根证书已被信任,这个自动生成的代理服务器证书是有效的,那么客户端和 charlestls 握手就可以顺利完成。

操作步骤

1、先用socket模块,在代理端口监听,一旦有客户端连接就新开一个线程处理连接

混合代理判断数据包是http还是https的唯一方法,就是浏览器器如果发送https包,在传输前会先向代理发送一个CONNECT请求,通过第一个数据包,可以判断接下来的数据是https还是http包。

2、手机中设置代理,这一步和抓http的方式一样。

3、安装证书。(这一步必须建立在第二步的基础上,否则手机中无法下载charles根证书)

3.1、手机上安装charles根证书。

在手机浏览器中打开charles根证书下载网址:chls.pro/ssl

会出现这样的界面,点击继续安装,然后去设置里的描述文件管理中信任。

3.2、电脑上安装根证书

在charles的help菜单中安装;完成后去系统的钥匙串访问中信任;

如果有小伙伴在这一步出现了问题,如:

或者在钥匙串中,找不到证书,可以尝试如下操作:

再重复:

然后去系统的钥匙串访问中信任

4、添加要监视的域名。

这里的端口号在第一步中已经添加默认端口号80,443,8080,所以无需配置

添加完成之后我们就可以对已经添加域名的https协议尽情的抓包了。

5、常见问题

  • 出现这种如下情况:如果你的客户端和pc的证书都认证通过,请检查是否对域名进行监视,如果证书未通过请从第一步开始

  • 出现这种情况,请检查你的手机是否信任;

ios手机10.0以上需要操作:设置–>通用–>关于本机–>证书信任设置

支持一下
扫一扫,支持晴天
  • 微信扫一扫
  • 支付宝扫一扫