安卓手机已经安装burpsuite证书,但app应用软件仍无法访问https联网,浏览器可以访问http但https提示此证书并非来自被信任的机构


这问题应该是安卓独有的。博主之前的模拟器访问完全没问题,最近突然无法访问,用控制变量法,我改缓了burp版本、java版本、重启电脑、用模拟器+手机都试了一遍,搞了一天,无果

最后查了burp官网发现这么一句话:

Note: Android Nougat no longer trusts user or admin supplied CA certificates. We recommend that you use an older version of Android for your testing. If you must use Android Nougat then you will need to install a trusted CA at the Android OS level on a rooted device or emulator.

Android Nougat就是安卓7,夜神模拟器好像就是安卓7,所以最简单的办法是选择安卓5启动模拟器

如果要用安卓7及以上版本,那么用户在手机里安装证书是不被认可的,需要安装系统证书,需要运行adb root

参考 一篇博客 安装系统证书步骤如下:

  • 导出burp证书,选Certificate in DER format即可

  • 使用openssl将der格式转为pem格式,方便安卓识别,博主懒得装openssl,直接传到linux上操作

# 转为pem格式
openssl x509 -inform DER -in cacert.der -out cacert.pem
# 重命名为<hash值>.0
mv cacert.pem `openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1`'.0'
  • 把<hash值>.0文件拿回Windows准备在adb中操作,需要root
adb root
:: remount将/system 置于可写入的模式,root情况下可使用
adb remount
adb push <hash值>.0 /sdcard/
adb shell
mv /sdcard/<hash值>.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/<hash值>.0

结束,重启手机即可在系统部分下看到burp的证书
在这里插入图片描述


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐