charles——OpenSSL——安卓7.0以上https抓包

Posted 小白龙白龙马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了charles——OpenSSL——安卓7.0以上https抓包相关的知识,希望对你有一定的参考价值。

参考1:https://blog.csdn.net/djzhao627/article/details/102812783?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

 

 

参考2:https://www.cnblogs.com/duobazi/p/11588993.html

 

 

参考3:https://blog.csdn.net/ShadowySpirits/article/details/79756274

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=====================================================================================================

 

解决Charles不能抓到https的问题

 

1.用Charles导出证书,随便命名 charles.pem

 

 

2.安装open ssl(http://slproweb.com/products/Win32OpenSSL.html),然后配置环境变量,把openssl安装路径bin的路径(例如 C:\\OpenSSL-Win64\\bin)加入到操作系统的系统环境变量Path中

 

 

 


3.将导出的的证书(charles.pem)导入电脑中

4.在cmd中输入

openssl x509 -subject_hash_old -in <Certificate_File>  
<Certificate_File>为刚才下载的证书(charles.pem),这个路径为绝对路径


然后将 charles.pem 这个文件改为 生成的数字加.0,例如

 

 

 

5.然后在用前端根证书导入的方法导入证书
adb root
adb remount      
adb push 0505096d.0 /etc/security/cacerts/             
adb shell chmod 644 /etc/security/cacerts/0505096d.0

如果remount或push失败,需要执行以下命令
adb disable-verity
adb reboot

6.以上方法一般可以抓到了,如果还是不行,需要配置 Proxy——SSL Proxying Settings——SSL Proxying,勾选Enable ——SSL Proxying,点击“add”,将Host和Port配置为*,如下图所示:

 

=========================================================================================================

android7及以上的手机安装系统级证书,实现HTTPS的抓包

Android7以后,系统不再信任用户级的证书,只信任系统级的证书,所以要抓包就需要把我们的代理程序证书安装至Android的系统目录中

准备

  • 一台已root的手机
  • Openssl

证书生成

 

 

 

 

 

 

 

执行命令:C:\\Users\\del>cd C:\\Users\\del\\Desktop

 

执行命令:C:\\Users\\del\\Desktop>openssl x509 -subject_hash_old -in Charles.pem

 

 

 

然后改名:

 

 

 

将新证书放入手机系统证书目录

手机系统目录位置是:

/system/etc/security/cacerts

需要拷贝至此目录必须拥有root权限

重启Android设备以生效

拷贝证书至/system/etc/security/cacerts之后,重启手机就可以使证书生效了

 

 

 

 

 

5.然后在用前端根证书导入的方法导入证书
adb root
adb remount      
adb push 0505096d.0 /etc/security/cacerts/             
adb shell chmod 644 /etc/security/cacerts/0505096d.0

如果remount或push失败,需要执行以下命令
adb disable-verity
adb reboot

6.以上方法一般可以抓到了,如果还是不行,需要配置 Proxy——SSL Proxying Settings——SSL Proxying,勾选Enable ——SSL Proxying,点击“add”,将Host和Port配置为*,如下图所示:

 

以上是关于charles——OpenSSL——安卓7.0以上https抓包的主要内容,如果未能解决你的问题,请参考以下文章

安卓7.0以上手机使用charles代理抓取https数据

Fiddler安卓7.0以上添加Fiddler/Charles证书到系统根证书(模拟器-雷电)

微信7.0以上版本fiddlerCharles抓包报HTTPS证书信任问题通报

Android 7.0 以上 Charles 和 Fiddler 无法抓取 HTTPS 包的解决方式

android 7.0以上charles https抓包

android 7.0以上charles https抓包