我已根植我的Android(4.0.4)手机并安装了一个应用程序,该应用程序通过我的计算机代理所有HTTP流量。这工作正常,我可以看到和修改所有HTTP请求。但是HTTPS流量不会通过。我已经导出了我的代理证书,但我发现cacert.bks
- 文件夹中没有/system/etc/security
- 文件。
那么如何使用keytool
将自定义证书添加到可信证书列表?
答案 0 :(得分:16)
我遇到了自签名网络服务器证书的问题,我无法通过打开它来安装。 我在logcat中有一个“CertInstaller(28614):找不到匹配的私钥”。 我的解决方案:
如果你想在不再使用bks文件的情况下将新证书安装到android系统cacert商店中:
你当然必须有根。
-----BEGIN CERTIFICATE----- MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1 ... -----END CERTIFICATE-----
openssl x509 -inform PEM -subject_hash -in yourcert.crt
你会得到像0d188d89这样的东西。
您必须获取证书的文本版本。
openssl x509 -inform PEM -text -in yourcert.crt> yourcert.txt
您必须在编辑器中切换文本和pem部分。 它应该是这样的:
-----BEGIN CERTIFICATE----- MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1 ... -----END CERTIFICATE----- Certificate: Data: Version: 1 (0x0) Serial Number: ...
您将文件重命名为“0d188d89.0”
将带有adb或其他内容的文件复制到/ system / etc / security / cacerts /。
您只需进入设置/安全/可信凭证/系统即可查看 证书按证书中的“组织”字段排序。
使用的信息来自:http://nelenkov.blogspot.de/2011/12/ics-trust-store-implementation.html
答案 1 :(得分:3)
Afaik,您不必在ICS之后根据您的设备安装您的可信证书。有条件。
http://support.google.com/android/bin/answer.py?hl=en&answer=1649774
答案 2 :(得分:2)
由于在android上使用了oder openssl(0.9。*),我不得不使用" -subject_hash_old"而不是-subject_hash"在用户user2708846的帖子https://stackoverflow.com/a/18390177/3043726中。
我已经在cyanogenmod论坛http://forum.cyanogenmod.com/topic/82875-installing-cacert-certificates-on-android-as-system-credentials-without-lockscreen/总结了我采取的步骤(包括更改文件权限,将文件复制到Android设备,以及如何验证证书是否已正确安装) 并在我自己的博客上http://wiki.pcprobleemloos.nl/android/