安卓10导入多个burp证书 taro Posted on May 5 2022 有个老手机:红米K20Pro ,最近刚刚给root后打算抓包使用。 ## 老安卓 把burp的der证书重新命名成crt,通过证书管理器安装 ## 安卓10 ### 单burp证书 以为装证书跟安卓7一样简单,把burp的der证书重新命名成crt,就能直接导入安卓,安装的时候发现,这样安装的证书只能是用户凭证。 ![](/api/file/getImage?fileId=6401feab243fdc000e000142) 但是抓包需要放入系统凭据 在安卓10以后只能root后才能将证书导入系统凭据。 有两个方法 1. magisk 的模块有现成的轮子 **Move Certificates** , 和之前安装证书的方法一致,只需要将证书安装到用户凭据,**重启后自动复制到系统凭据** 2. 手动修改 `/system/etc/security/cacerts/` 把证书导入进去 当然第一种简单很多,在第一次安装证书的时候,重启一下就解决了这个问题,但是装另一个burp证书的时候无论如何都不成功,所以我只能尝试第二种,参考了这个链接 https://www.cxymm.net/article/weixin_42081389/121019793 查看证书相关信息,确保自己安装的证书不是之前的 ```shell openssl x509 -inform DER -noout -text -in burp.crt ``` ![](/api/file/getImage?fileId=6401feab243fdc000e000144) 在这里试了好多遍,已经确保了序列号相同,还是会出现问题,索性用第二种方式通过MT管理器打开证书手动写进去,发现这个 9a5ba575已经存在,并且删不掉,删除了所有用户凭据,重启后还是会出现(似乎是**Move Certificates**做的) ![](/api/file/getImage?fileId=6401feab243fdc000e000141) 突然发现了问题,我通过这种方式获取到的hash值 ![](/api/file/getImage?fileId=6401feab243fdc000e000143) 已经存在我的 `/system/etc/security/cacerts/` 目录下了,这才发现,这个hash值是对证书的object做hash, 所以发现burp+安卓中的一个坑 **burp自己签的证书 都是 PortSwigger 颁发的,所以在一个安卓手机中只能装一个证书** 想要装两个证书,就需要burp导入证书,导入一个颁发机构不叫**PortSwigger**的证书 ### 多burp证书 #### 生成burp证书 https://portswigger.net/burp/documentation/desktop/tools/proxy/options ```shell openssl req -x509 -days 730 -nodes -newkey rsa:2048 -outform der -keyout server.key -out ca.der openssl rsa -in server.key -inform pem -out server.key.der -outform der openssl pkcs8 -topk8 -in server.key.der -inform der -out server.key.pkcs8.der -outform der -nocrypt ``` 从burp中导入两个文件 ![](/api/file/getImage?fileId=6401feab243fdc000e000140) ![](/api/file/getImage?fileId=6401feab243fdc000e000145) 剩下的就和正常的安卓10一样了 pokemen 小米手机开启wifi ADB