由于Android7.0之后新版本系统的安全限制,证书必须安装到系统证书目录下:/system/etc/security/cacerts,
之前的安装的证书的步骤可能会抓包产生下图问题:
Android7.0 之后默认不信任用户添加到系统的CA证书,按之前的步骤即使你在手机上安装了抓包工具的证书也无法抓取 https 请求,但是苹果系统目前还是可以安装的。
操作步骤:
1、系统首先root
2、在手机上下载并安装证书
- 手机连上charles的代理,qq浏览器输入chls.pro/ssl,会直接下载得到一个
charles-proxy-ssl-proxying-certificate.pem
(目前只知道qq浏览器下载的格式为pem)证书。 - 安装方法:设置 > 密码、隐私与安全> 系统安全 > 加密与凭据 > 从SD卡安装(注意要先把之前的清除)
3、将下载的pem证书文件传到到电脑上,并执行以下命令得到证书的md5值
openssl x509 -subject_hash_old -in 文件
如本博文示例:openssl x509 -subject_hash_old -in charles-proxy-ssl-proxying-certificate.pem
输出结果:
第一行:9fb67cec 即为md5值。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
169fb67cec -----BEGIN CERTIFICATE----- MIIFTDCCBDSgAwIBAgIGAWnNu9S4MA0GCSqGSIb3DQEBCwUAMIGqMTswOQYDVQQD DDJDaGFybGVzIFByb3h5IENBICgzMCDkuInmnIggMjAxOSwgc2RjdWlrZWRlLmxv Y2FsKTElMCMGA1UECwwcaHR0cHM6Ly9jaGFybGVzcHJveHkuY29tL3NzbDERMA8G A1UECgwIWEs3MiBMdGQxETAPBgNVBAcMCEF1Y2tsYW5kMREwDwYDVQQIDAhBdWNr bGFuZDELMAkGA1UEBhMCTlowHhcNMDAwMTAxMDAwMDAwWhcNNDgwNTI2MDgzMzUy WjCBqjE7MDkGA1UEAwwyQ2hhcmxlcyBQcm94eSBDQSAoMzAg5LiJ5pyIIDIwMTks IHNkY3Vpa2VkZS5sb2NhbCkxJTAjBgNVBAsMHGh0dHBzOi8vY2hhcmxlc3Byb3h5 LmNvbS9zc2wxETAPBgNVBAoMCFhLNzIgTHRkMREwDwYDVQQHDAhBdWNrbGFuZDER MA8GA1UECAwIQXVja2xhbmQxCzAJBgNVBAYTAk5aMIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEAw84oCpyd0O4gMVeLlCYjWGgIT2ROskLfVykcrPXSnXBk FUsizZjzzmiGd6IJ/0htntbfAHE7nRuiJMpiGJiFHwKqLC10LClM7ezpjTUy8TZn c7BYOq2tXNxvXFX59gnYTbjEeWgFReuvYpEzOIqUNEXvoetbSdbMipAPNzPaBZWN JHxeR+KBw......== -----END CERTIFICATE-----
4、将charles-proxy-ssl-proxying-certificate.pem重命名为:<8位md值>.<0>,这里的md5值为上一步得到的。
Android系统根目录下的证书名字格式如下:<8位md值>.<0>
本博文的证书名称就是:9fb67cec.0
可以看到系统中其他证书的名字格式如下图:
复制代码
1
2
3olivelite:/ # cd system/etc/security/cacerts olivelite:/system/etc/security/cacerts # ls 00673b5b.0 1df5a75f.0 2d9dafe4.0 3c58f906.0 4e18c148.0 5f47b495.0 7999be0d.0 882de061.0 9685a493.0 a7605362.0 b872f2b4.0 c90bc37d.0 d4c339cb.0 e775ed2d.0
5、将上面步骤产生9fb67cec.0证书push到手机目录:/system/etc/security/cacerts
复制代码
1
2
3
4sudo /Users/sdcuike/Library/Android/sdk/platform-tools/adb push 9fb67cec.0 /system/etc/security/cacerts 9fb67cec.0: 1 file pushed, 0 skipped. 0.2 MB/s (1917 bytes in 0.008s)
push中如果遇到错误 例如remount of the / superblock failed: Permission denied或者file only read等。
解决办法:
复制代码
1
2
3
4
5
6$ adb root $ adb disable-verity $ adb reboot $ adb root $ adb remount
6 、在 设置->安全->加密与凭据->信任的凭据 的系统标签页看到你新加入的证书,将其启用即可顺利抓包
经过上述在红米8A上顺序实现https 抓包(红米8A的root不是自己root的,内部刷的包)。
最后
以上就是细腻棒球最近收集整理的关于android 7.0以上charles https抓包的全部内容,更多相关android内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复