源自公众号文章: 彻底解决Charles手机抓包的证书问题

简介: Charles 抓包是日常开发当中经常会用到的技术, 在 Android 6 之前, 手机系统既信任系统内置的证书, 也信任用户自己安装的证书, 但是在 Android 7 之后, 却发生了变化, 手机系统只信任系统内置的根证书. 当然了, 这是为了手机系统更安全. 但是这样以来, 原来抓包的方法就失效了. 本文主要全面讲解 IOS 和 Android 系统如何去配置根证书. 彻底解决抓包所遇到的最头疼的问题.

Charles 抓包前的准备工作

  1. 下载 charles, 官网的地址: https://www.charlesproxy.com
  2. 配置要抓包的主机和端口, Proxy > SSL Proxying Settings > SSL Proxying, 启用 Enable SSL Proxying, 同时在 Include 当中添加 Location, 如下图所示(这是个通配符配置, 一般状况下, 这个这个已经能够满足绝大数抓包的需求了).
  1. 配置代理服务器的端口, Proxy > Proxying Settings, 设置端口(我喜欢使用8888, 当然了, 各位自己按照喜好设置):

一般情况下, 上述配置已经满足了大部分抓包的需求, 当然还需要更详细的内容, 请参考其他教程内容.


Charles 在 Android 7.0(及其以上的版本) 上安装证书方法

  1. 下载应用 VMOS, 官网地址是: http://www.vmos.cn.

注: VMOS 应用就是一台 Android 虚拟机, 目前好像只支持 32 位系统, 大部分应用都可以使用, 如果有的应用明确需要 64位系统, 可以使用 VMOS Pro, 当然了这个 root 功能是收费的了.

2. 导出 Charles 的证书, 这个证书是抓包的时候安装在手机上的证书. 方法有两种:

方法一:

  • 在 Android 手机上配置代理, 主机是你安装 Charles 的主机的 IP (注意: Android 手机需要和安装的Charles的电脑在同一网段下), 端口号是 8888. (这个可以自行百度各种手机的配置方法.)
  • 在 Android 手机的浏览器上输入网址chls.pro/ssl, 然后下载文件.
  • 将下载好的文件拷贝到电脑上, 进行如下的操作:
openssl x509 -subject_hash_old -in charles-proxy-ssl-proxying-certificate.crt

charles-proxy-ssl-proxying-certificate.crt 是拷贝的证书文件

上面输出的结果类似于:

faf57fe3
-----BEGIN CERTIFICATE-----
MIIFMDCCBBigAwIBAgIGAXWqowQPMA0GCSqGSIb3DQEBCwUAMIGbMSwwKgYDVQQD
....
aXDrm30UE6+dWdQ3n0ePVLNcHV+ZrIqwka94M/t8HavZpm4y
-----END CERTIFICATE-----

然后将 charles-proxy-ssl-proxying-certificate.crt 文件重命名faf57fe3.0 (faf57fe3需要根据你自己生成 的结果进行调整)

方法二:

  • Charles 进入 Help > SSL Proxying > Save Charles Root Certificate, 导出 pem 格式证书.
  • 然后进行如下的操作:
openssl x509 -subject_hash_old -in charles-proxy-ssl-proxying-certificate.pem

charles-proxy-ssl-proxying-certificate.pem 是导出的证书文件

上面输出的结果类似于:

faf57fe3
-----BEGIN CERTIFICATE-----
MIIFMDCCBBigAwIBAgIGAXWqowQPMA0GCSqGSIb3DQEBCwUAMIGbMSwwKgYDVQQD
....
aXDrm30UE6+dWdQ3n0ePVLNcHV+ZrIqwka94M/t8HavZpm4y
-----END CERTIFICATE-----

然后将 charles-proxy-ssl-proxying-certificate.pem 文件重命名faf57fe3.0(faf57fe3需要根据你自己生成 的结果进行调整)
3. 拷贝文件, 将生成好的证书文件拷贝到 /system/etc/security/cacerts/ 目录下, 并且修改文件权限:

# adb 连接到 vmos 虚拟机
adb connect 192.168.50.100:5666# 拷贝文件
adb push faf57fe3.0 /system/etc/security/cacerts/# 修改文件权限
adb shell
cd /system/etc/security/cacerts/
chmod 644 faf57fe3.0

192.168.50.100:5666VMOS 虚拟机的 adb 连接. 在进入 VMOS app后, 进入 设置 > 其他设置 当中, 按照下图所示进行设置, 然后重启 VMOS app 即可生效:

4. 设置全局代理. 到此为止, 你已经成功了一半, 接下来就需要设置 VMOS 的全局代理地址为当前的 Charles 的代理服务器的地址. 设置操作如下:

adb connect 192.168.50.182:5666 # adb 连接到 vmos 虚拟机(如果之前已经连接过可以省略)adb shell settings put global http_proxy 192.168.50.14:8888 # 设置 vmos 的全局代理

192.168.50.14:8888 是我的 Charles 的主机IP地址, 这个需要根据自己的情况修改. 这一步很重要的, 如果没有这一步操作, 前面的准备工作都白搭了!

5. 到处为止, 大家就可以愉快的抓包了. 要么去 VMOS 的应用商店下载应用, 要么自己把应用传递到 VMOS 当中. 这个大家自己去探索吧, 是非常简单的操作.


charles 在 iphone 上安装证书方法

  • Charles 当中点击 Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser
  • 点击 iPhone 手机的 Safari 或者 Safari浏览器, 输入网址 http://chls.pro/ssl, 点击下载 charles 的证书.
  • 进入 iPhone 手机的 Settings > General > Profile(s) 或者 设置 > 通用 > 描述文件:
  • 点击 Install 或者 安装, 安装 chls 证书.
  • 进入 iPhone 手机的 Settings > General > About > Certificate Trust Settings 或者 设置 > 通用 > 关于本机 > 证书信任设置, 启用已经安装好的 Charles Proxy CA 证书.

各位看官, 本篇文章怎么样? 如果喜欢了, 就请点个赞吧, 关注一下, 再次感谢您的观看 !

charles 安装 ssl_最全面的解决Charles手机抓包的证书问题(步骤非常详细)相关推荐

  1. Charles最新破解版苹果iphone安卓android手机抓包分析教程笔记

    Charles最新破解版苹果iphone安卓android手机抓包分析教程笔记 中间遇到各种问题导致最终没法看到抓包信息,一个坑一个坑的埋,终于成功抓包小程序. 梳理了下可以尽量减少栽坑的安装过程,如 ...

  2. iOS 10.3下解决Fiddler代理抓包ssl证书信任问题

    iOS 10.3下解决Fiddler代理抓包ssl证书信任问题 参考文章: (1)iOS 10.3下解决Fiddler代理抓包ssl证书信任问题 (2)https://www.cnblogs.com/ ...

  3. 努比亚手机浏览器 安全证书失效_彻底解决Charles手机抓包的证书问题

    点击上方蓝色"后端开发杂谈"关注我们, 专注于后端日常开发技术分享 Charles 证书配置 简介: Charles 抓包是日常开发当中经常会用到的技术, 在 Android 6 ...

  4. 如何解决安卓手机抓包显示无网络/网络异常

    前言 因为很多APP在抓包的时候是会显示网络异常或无网络连接的,所以很多小伙伴到了抓包这一步就无从下手了. 这个时候,我们可以借助虚拟机来抓包,把APP放到虚拟机里,在用抓包软件抓取虚拟机. 这里以安 ...

  5. 解决Charles手机抓包出现unknown和乱码的问题

    解决Charles手机抓包出现unknown和乱码的问题 如果显示不是下图所示的目录和文件 而是显示unknown和乱码的话 0x01 在电脑上安装CA证书 方法参考 :  https://blog. ...

  6. ios手机如何安装charles抓包工具证书

    ios手机如何安装charles抓包工具证书 安装证书前提,已经下载好charles 1.打开手机设置–WiFi–配置代理–点击手动–填写(服务器,端口号)–点击存储 不知道服务器和端口号,在char ...

  7. Python爬取微信小程序数据[使用Charles手机抓包获取微信小程序的请求]

    前期准备 第一步 注意:首先将电脑和手机连接到一个网路里 然后重启软件 第二步 根据提示,手机设置代理 配置完之后打开Safari浏览器: chls.pro/ssl 手机浏览器直接访问chls.pro ...

  8. charles电脑手机抓包上不了网的细节设置

    charles电脑手机抓包上不了网的细节设置 >>>每次用charles抓包时,都会出现电脑或者手机上不了网的问题.设置好后一换电脑又得一番麻烦的设置.今天就总结下细节方面的设置,不 ...

  9. 用Fiddler、Charles和mitmproxy进行手机抓包的配置教程

    写爬虫时,有些数据pc端并不能提供我们需要的数据例如抖音,就需要对手机端数据进行抓取,目前来说比较常用的app抓包软件:Fiddler,mitmproxy,Charles,这些软件在进行数据抓包之前都 ...

最新文章

  1. 制度缺陷,美国96%受访公司的人工智能项目陷于停顿,难怪封堵
  2. 流程 - 什么是真正的Scrum?
  3. 痛并快乐的造轮子之旅:awk访问数据库之旅
  4. 基于Redis的分布式锁实现
  5. 每天一道LeetCode-----合并两个/多个有序链表为一个新链表
  6. 从 Google Code 迁移代码到 GitHub 上
  7. win7小工具打不开_Win7系统电脑桌面双击快捷键方式图标没反应的解决办法
  8. 什么是Git最好的视觉合并工具? [关闭]
  9. dedecms关于访问量的修改
  10. 如何高效学习和阅读源码?
  11. 【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第一节 lua框架的建立
  12. SQL Server中的聚集索引与堆
  13. 品牌国际传播第一步:谁是最重要的人?| 直播活动预告
  14. POJ 2540 Hotter Colder(半平面交求可行域)
  15. 大数据产品推荐:星环人工智能平台
  16. 道路标线提取方法论文总结
  17. 陆奇首次出手投资量子计算
  18. 我的世界java爱暮色森林秋季,Minecraft1.12.2暮色森林暮色恶魂简单攻略
  19. JAVA中间转发层开发
  20. MAX24——3Dmax中出现蒙皮封套权重失效解决办法

热门文章

  1. 最简单、图解:阿里云服务器上装 Docker 、 CentOS上 docker安装(3分钟装完)
  2. 白话解说:阻塞和非阻塞,同步和异步
  3. Docker : Dockerfile 定制镜像
  4. 进一步了解 apt-get 的几个命令
  5. Docker 上安装、启动 MySQL (图解)
  6. 手机号码归属地及运营商查询
  7. lambda表达式与委托与线程初步谈论-基于刘铁锰视频观后操作
  8. Machine Learning——octave矩阵操作(2)——DAY3
  9. PHP内核探索之变量(6)- 后续内核探索系列大纲备忘
  10. Android之TextView属性详解