有没有办法通过ADB在.crt
下安装CA证书(Security -> Trusted Credential -> User tab
文件)?或任何其他"可编写脚本的"方式。
答案 0 :(得分:7)
我想出了一种方法,因此我能够信任查尔斯代理证书。它将被添加为受信任的SSL根证书。
首先,您需要获取证书哈希
openssl x509 -inform PEM -subject_hash_old -in charles-proxy-ssl-proxying-certificate.pem | head -1>toto
我使用windows,将其存储在var中以自动执行过程set /p totoVar=<toto
set totoVar=%totoVar%.0 && DEL toto
cat charles-proxy-ssl-proxying-certificate.pem > %totoVar%
openssl x509 -inform PEM -text -in charles-proxy-ssl-proxying-certificate.pem -out nul >> %totoVar%
adb shell mount -o rw,remount,rw /system
adb push %totoVar% /system/etc/security/cacerts/
adb shell mount -o ro,remount,ro /system
adb reboot
答案 1 :(得分:4)
感谢这个答案Install User Certificate Via ADB我能够调整适用于bash shell的脚本:
#!/bin/bash
openssl x509 -inform PEM -subject_hash_old -in charles-proxy-ssl-proxying-certificate.pem | head -1
cert_name=$(!!).0
cat charles-proxy-ssl-proxying-certificate.pem > $cert_name
openssl x509 -inform PEM -text -in charles-proxy-ssl-proxying-certificate.pem-out nul >> $cert_name
adb shell mount -o rw,remount,rw /system
adb push $cert_name /system/etc/security/cacerts/
adb shell mount -o ro,remount,ro /system
adb reboot
(是的,我知道这应该是一个评论,但我没有足够的声誉将其作为评论发布)
答案 2 :(得分:2)
我能够通过以下步骤获得一个服务器证书显示在SIGABRT
标签(而不是系统标签,该标签显示了其他答案)下:
Trusted Credential -> User