安卓4.x.x导入证书貌似必须带有x509 v3拓展,导入前必须设置屏幕解锁密码,导入后提示网络可能会受到监控
则导入成功,否则即使显示导入成功,在受信任的凭据
->用户
中也还是没有,即导入失败。
可以在linux系统上完成,第二步会询问信息,建议填写与自己相关,能辨识的,与Goagent CA
区分
openssl req -new -x509 -extensions v3_ca -keyout goagent.key -out goagent.crt -days 365000 -nodes
cat goagent.key >> goagent.crt
然后
- 将生成的
goagent.crt
导入安卓- 将生成的
goagent.crt
文件内容覆盖goagent/local的CA.crt
###以上是正常做法(会提示网络受监控,必须设置锁屏密码,无需ROOT)
安卓中自行添加的证书在/data/misc/keychainca/certs-added
如果想不设置锁屏密码,可以将其移动到/system/etc/security/cacerts
上面的文件名是xxxxxxxx.0的形式,这是哈希后的结果
可以openssl x509 -in goagent.crt -subject_hash_old -noout
,得到的文件名应该是一致的
/data/misc/keychainca/certs-added
中的文件是二进制的
/system/etc/security/cacerts
则是文本
但直接复制过去可以用(其实文件名貌似都可以随意)
可以用文件->base64的转换软件转换试试看 http://ghostfromheaven.iteye.com/blog/1611551
####如果觉得这样不好。。可以试试下面的
openssl x509 -inform PEM -text -in goagent.crt > goagent.txt
- 用文本编辑器把
-----BEGIN CERTIFICATE-----
到-----ENDCERTIFICATE-----
的部分放到最前 - 最好改名为
xxxxxxxx.0
的形式(实际测试。不改也行) - 把这个文件放到
/system/etc/security/cacerts
下,权限改为644
最后提醒,如果安卓浏览器提示证书尚未生效,重启下就好了
http://www.gtopia.org/blog/2010/02/der-vs-crt-vs-cer-vs-pem-certificates/