我已经植根了我的 Android (4.0.4) 手机并安装了一个应用程序,它通过我的计算机代理所有 HTTP 流量。这工作正常,我可以查看和修改所有 HTTP 请求。但是 HTTPS 流量不会通过。我已经导出了代理的证书,但我发现-文件夹中没有cacert.bks
-file /system/etc/security
。
那么如何将我的自定义证书添加到受信任的证书列表中keytool
呢?
我已经植根了我的 Android (4.0.4) 手机并安装了一个应用程序,它通过我的计算机代理所有 HTTP 流量。这工作正常,我可以查看和修改所有 HTTP 请求。但是 HTTPS 流量不会通过。我已经导出了代理的证书,但我发现-文件夹中没有cacert.bks
-file /system/etc/security
。
那么如何将我的自定义证书添加到受信任的证书列表中keytool
呢?
我遇到了一个自签名网络服务器证书的问题,我无法通过打开它来安装它。我在 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
Afaik,在 ICS 之后,您无需 root 设备即可安装受信任的证书。有这样的设置。
http://support.google.com/android/bin/answer.py?hl=en&answer=1649774
由于在 android 上使用了 oder openssl (0.9.*),我不得不在用户 user2708846 的帖子https://stackoverflow.com/a/18390177/3043726中使用“-subject_hash_old”而不是 -subject_hash”。
我已经在 cyanogenmod 论坛http://forum.cyanogenmod.com/topic上总结了我采取的步骤(包括更改文件权限、将文件复制到 android 设备以及如何验证证书是否安装正确的帮助)/82875-installing-cacert-certificates-on-android-as-system-credentials-without-lockscreen/ 和我自己的博客http://wiki.pcprobleemloos.nl/android/