
charlesssl证书内置到安卓系统
准备工作
1、安装Charles:确保你的电脑上已安装Charles,并且配置好SSL代理。
2、获取Root权限:Android手机需要获得root权限,因为只有root后才能访问系统目录,建议使用模拟器进行操作,如雷电模拟器或MEME模拟器。
3、安装adb工具:确保你的电脑上已经安装了adb工具,并且可以通过命令行访问。
4、下载并导出Charles证书:在Charles中,通过Help > SSL Proxying > Save Charles Root Certificate将证书保存到电脑中。
实施步骤
1. 导出和计算证书哈希值
导出证书:从Charles中导出证书文件(通常是.pem
格式)。
计算哈希值:
openssl x509 -inform PEM -subject_hash_old -in charles-ssl-proxying-certificate.pem
记下计算出的哈希值,例如3182384b
。
重命名证书:将证书文件重命名为哈希值加.0
,即3182384b.0
。
2. 生成预设格式证书文件
根据导出的证书格式选择相应的命令:
openssl x509 -inform PEM -text -in charles-ssl-proxying-certificate.pem > 3182384b.0
或者对于.crt
格式:
openssl x509 -inform DER -text -in charles-ssl-proxying-certificate.crt > 3182384b.0
3. 编辑生成的证书文件
打开生成的3182384b.0
文件,并在文件开头添加以下内容:
-----BEGIN CERTIFICATE----- MIIDXTCCAkWgAwIBAgIJAN7uOj/zPQswMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNVBAYT...
4. 上传证书到手机
连接手机与电脑:确保手机和电脑处于同一网络环境,并且手机开启了开发者模式和USB调试。
推送证书到手机:
adb push 3182384b.0 /sdcard/
5. 移动证书到系统目录
进入手机的shell环境:
adb shell
挂载系统分区为读写:
su mount -o remount,rw /system
移动证书文件:
cp /sdcard/3182384b.0 /system/etc/security/cacerts/ chmod 644 /system/etc/security/cacerts/3182384b.0
6. 设置代理并测试
设置代理:在手机的WiFi设置中,将代理设置为Charles所在电脑的IP地址和端口(默认8888)。
测试抓包:打开手机上的任意HTTPS应用,检查Charles是否能够成功抓取到HTTPS请求。
常见问题及解答
问题1:为什么需要Root权限?
答:由于Android 7.0及以上版本对用户安装的证书进行了限制,只有系统信任的根证书才能用于HTTPS抓包,需要Root权限来将证书安装到系统根证书目录中。
问题2:如何更改证书的文件名和格式?
答:首先使用OpenSSL计算证书的哈希值,然后将证书文件重命名为哈希值加.0
,根据证书的原始格式(PEM或CRT),使用OpenSSL将其转换为系统可识别的文本格式,并添加到相应的文件中,通过adb工具将编辑好的证书文件推送到手机的系统根证书目录中。
小伙伴们,上文介绍了“charlesssl证书内置到安卓系统”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/42263.html<