android证书加入系统证书受信,解决mitmproxy或anproxy 类似的证书安装后不受信

解决mitmproxy或anproxy 类似的证书安装后不受信的问题。

这种问题出现在android 7.0以后的版本中。用户证书不被 应用信任。

我这个解决办法是把证书添加到系统证书中,那么就必须要给手机root权限。如果你的手机不能被 root那这个方法就行不通。

这里是任意证书都可以,包括你个人签名的证书,因为某些原因你不能用mitmproxy或anproxy 自带的证书,所以你要自己生成,多的不讲,懂的自然明白。


一定要root权限才能把证书加到系统证书中

cert.cer 证书是你自己的证书名称

运行命令

openssl x509 -inform PEM -subject_hash_old -in cert.cer -noout

它会输出一个字符串 记住这个字符串 (如果这个字符串是 :c8750f0d)

运行命令

openssl x509 -inform PEM -in cert.cer -out c8750f0d.0
#也可以直接给证书改个名就行。
cp mitmproxy-ca-cert.cer -out c8750f0d.0


然后 将证书推到sdcard卡中

adb push c8750f0d.0 /sdcard


获取手机的root权限

adb shell
su

重新挂载系统目录为可写 

mount -o rw,remount /   
#或者 mount -o rw,remount /system
mv /sdcard/c8750f0d.0 /system/etc/security/cacerts
# 这里可以剪切也可以拷贝 
# cp /sdcard/c8750f0d.0  /system/etc/security/cacerts

修改证书权限

chmod 644 /system/etc/security/cacerts/c8750f0d.0

一般到这里就结束了,后面的就不用看了。


如果你报错

'/dev/block/dm-0' is read-only


请确认你是否在root状态下,首先你的手机需要root

然后上面的  su 命令必须是要运行 且成功没有报错的。

确认拿到root 权限后,你可以执行以下命令来你查看的android的构建类型,在 adb shell 输入


查看编译模式属性

cat /system/build.prop | grep build.type

一般会返回

ro.build.type=user

这个编译模式属性( ro.build.type)有多个值 (如user,userdebug,eng,test模式)

如果你的显示是开发调试版本模式你需要运行以下命令

adb root
adb disable-verity
adb reboot
adb remount
adb shell
mount -o rw,remount /system

拷贝证书按上面的方法就行了,最后别忘了修改证书的权限。

到这里就算完了。

最后如果系统升级一定要重新拷贝证书。


Tags ca证书 爬虫 linux

留言(0)

评论