通过ADB安装用户证书

时间:2017-07-06 07:51:18

标签: android certificate adb x509certificate

有没有办法通过ADB在.crt下安装CA证书(Security -> Trusted Credential -> User tab文件)?或任何其他"可编写脚本的"方式。

3 个答案:

答案 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