Android内置证书文件
将证书文件内置到Android系统内部使其受信任,Android从7.0开始用户证书就不受信任了,这就导致抓包的过程中HTTPS无法解密,这一章我们来学习如何内置证书文件(这里以系统源码Android 9.0,pixel一代为例)。
一、环境准备
(1) Android系统源码编译环境
(2) 开发环境(SubLime Text3)
二、概述
这章主要涉及到证书的提取、证书的导入(内置),首先我们了解一些小知识,如下表
(1)Android手机内部目录
目录 | 描述 |
---|---|
用户证书目录 | /data/misc/user/0/cacerts-added/ |
系统证书目录 | /system/etc/security/cacerts |
(2)Android系统源码目录
目录 | 描述 |
---|---|
系统证书目录 | /aosp/system/ca-certificates/files |
系统证书目录 | /aosp/system/ca-certificates/google/files |
二、提取证书
将.pem/.cer
证书文件转为.0
证书文件,这里有两种方法。
(1)将证书安装到手机上,再将.0
证书文件进行导出
adb pull /data/misc/user/0/cacerts-added/xxxx.0 #提取证书
(2)使用openssl
将证书转为.0
证书文件
a. 获取证书文件的哈希值
#cer证书文件
openssl x509 -inform DER -subject_hash_old -in xxxx.cer
#pem证书文件
openssl x509 -inform PEM -subject_hash_old -in xxxx.pem
b. 生成.0
证书文件
#cer证书文件
openssl x509 -inform DER -text -in xxxx.cer > 哈希值.0
#pem证书文件
openssl x509 -inform PEM -text -in xxxx.pem > 哈希值.0
三、内置证书
将.0
证书文件导入到android源码目录(/aosp/system/ca-certificates/files
)
cp xxxx.0 /aosp/system/ca-certificates/files
四、编译
source build/envsetup.sh
lunch 47 #以自己的设备为准
make -j32 #以自己电脑性能适当调整数字
asjhan for Android reverse