Skip to content

Instantly share code, notes, and snippets.

@wen-long
Created June 5, 2014 05:06
Show Gist options
  • Save wen-long/146e4749c6e88af16e0f to your computer and use it in GitHub Desktop.
Save wen-long/146e4749c6e88af16e0f to your computer and use it in GitHub Desktop.
goagent 跑在树莓派上,openssl 也是用的树莓派的

安卓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

然后

  1. 将生成的goagent.crt导入安卓
  2. 将生成的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

####如果觉得这样不好。。可以试试下面的

  1. openssl x509 -inform PEM -text -in goagent.crt > goagent.txt
  2. 用文本编辑器把 -----BEGIN CERTIFICATE----------ENDCERTIFICATE----- 的部分放到最前
  3. 最好改名为xxxxxxxx.0的形式(实际测试。不改也行)
  4. 把这个文件放到/system/etc/security/cacerts下,权限改为644

最后提醒,如果安卓浏览器提示证书尚未生效,重启下就好了

http://www.gtopia.org/blog/2010/02/der-vs-crt-vs-cer-vs-pem-certificates/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment