点击上方蓝色“后端开发杂谈”关注我们, 专注于后端日常开发技术分享

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 (站点配置), 如下图所示(这是个通配符配置, 一般状况下, 这个这个已经能够满足绝大数抓包的需求了):

image
  1. 配置代理服务器的端口, Proxy < Proxying Settings, 设置端口(这个端口会在后面使用到的哦).

image

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


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

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

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

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

方法一:

  • 在 Android 手机上配置代理, 主机是你安装 Charles 的那台电脑的 IP (注意: Android 手机需要和安装的 Charles 的电脑在同一网段下), 端口号 8888. (这个可以自行百度各种手机的配置方法.)

  • 在 Android 手机的浏览器上输入网址 chls.pro/ssl, 然后下载并保存证书文件.

  • 将下载好的证书文件拷贝到电脑上, 进行如下的操作:

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 格式证书文件.

  • 然后进行如下的操作:

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.0faf57fe3需要根据你自己生成的结果进行调整)

  1. 将生成好的证书文件拷贝到 /system/etc/security/cacerts/ 目录下, 并且修改文件权限:

# adb 连接到 vmos 虚拟机

192.168.50.100:5666 是 VMOS 虚拟机的ADB地址. 在进入 VMOS APP后, 进入 设置 > 其他设置 当中, 按照下图所示进行设置, 然后重启 VMOS APP 即可生效:

image
  1. 设置全局代理. 到此为止, 证书已经安装好了. 接下来需要设置 VMOS 的全局代理地址为当前的 Charles 的代理服务器的地址. 设置操作如下:

adb 连接到 

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

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


Charles 在 iphone 上安装证书方法

  • Charles 当中点击 Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser

image
  • 点击 iPhone 手机的 Safari 或者 Safari浏览器,  输入网址 http://chls.pro/ssl, 点击下载 Charles 的证书.

  • 进入 iPhone 手机的 Settings > General > Profile(s) 或者 设置 > 通用 > 描述文件:

image
  • 点击 Install 或者 安装, 安装 chls 证书.

image
  • 进入 iPhone 手机的 Settings > General > About > Certificate Trust Settings 或者 设置 > 通用 > 关于本机 > 证书信任设置, 启用已经安装好的 Charles Proxy CA 证书.

image

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

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

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

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

    源自公众号文章: 彻底解决Charles手机抓包的证书问题 简介: Charles 抓包是日常开发当中经常会用到的技术, 在 Android 6 之前, 手机系统既信任系统内置的证书, 也信任用户自己 ...

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

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

  4. 关于fi dd ler 手机抓包 网卡地址地址_[问题]Android 7.0+使用VirtualXposed+Charles进行抓包

    Android 7.0+使用VirtualXposed+Charles进行抓包(下面以android10为例) 来源: Android 7.0+使用VirtualXposed+Charles进行抓包​ ...

  5. 360手机浏览器升级至chrome62 成内核版本最高的手机浏览器

    360手机浏览器升级至chrome62 成内核版本最高的手机浏览器 春节和元宵的爆竹声还未走远,春意盎然的三月却已悄然而至,不知不觉又到一年一度的3月8日女神节.在官方定义中,3月8日被称为妇女节,然 ...

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

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

  7. 【Fiddler 问题】解决关于Fiddler 抓包中,手机网络配置代理后,无法上网

    [Fiddler 问题]解决关于Fiddler 抓包中,手机网络配置代理后,无法上网 一.在注册表添加文件 二.配置 FiddlerScript rule 一.在注册表添加文件 1.使用 window ...

  8. 微信APP抓包+将证书安装到系统证书目录

    将抓包工具证书安装到系统证书目录 正当我不知道下一篇文章水什么的时候,我的小伙伴就直接扔来一张图,说是之前可以 问题 报错提示:The c lient failed to negotiate a TL ...

  9. 数字证书抓包安装证书原理

    一.数字证书 1.什么是数字证书 证书用来证明某个网站或文件. 简单可以理解为类似公司公章,用来证明合同文件等是该公司的. 2.什么是CA证书 CA是"证书授权中心"的简称,是负责 ...

最新文章

  1. 浮点型数据存储格式详解
  2. JavaScript事件使用指南
  3. 如何调优JVM - 优化Java虚拟机(大全+实例)
  4. gensim在“中文查找(关键词)“与“txt文本“之间做相似度计算(返回最相似的文本)
  5. go strconv
  6. 不一样的假期,到底哪里不一样?
  7. Retrofit:类型安全的REST客户端for 安卓Java
  8. 【英语学习】【English L06】U03 House L5 Renting a House
  9. OSChina 周一乱弹 —— 程序员的浪漫你不懂
  10. python类方法在类外定义_第7.15节 Python中classmethod定义的类方法详解
  11. 算法4中数学模型练习题分析
  12. Map与JSON数据之间的互相转化
  13. 俄罗斯方块、纯前端实现俄罗斯方块、俄罗斯方块代码
  14. Ubuntu18.04下WizNote为知笔记源码编译安装
  15. 深度学习入门资料整理
  16. html中哪些是行内元素,html行内元素有哪些
  17. 一步一步教你写股票走势图——分时图五(自定义标记)
  18. Lake Shore低温温度传感器之Cernox
  19. 《Automation in Construction》期刊介绍(SCI 2区)
  20. flex-shrink如何如何分配容器收缩空间

热门文章

  1. Android判断模拟器还是真机的方法
  2. 还没穿学士服,还没吃散伙饭,就这样毕业了
  3. 阿里巴巴增持菜鸟,未来五年再投1000亿建设全球物流网络
  4. Python-Pandas库实现EXCEL数据拆分成不同的表
  5. 虾米音乐mac端应用代码注释惊现“穷逼vip”,是程序员干的
  6. 计算机一级考试正文首字下沉2行,各段落首字下沉两行、距正文0.1cm。
  7. APP推广场景化:让用户主动下载你的产品!
  8. 5G切换流程详细介绍
  9. JS创建数组及数组的常用方法
  10. 亚马逊云科技赋能各行各业,帮助客户数字化转型