8

我已经植根了我的 Android (4.0.4) 手机并安装了一个应用程序,它通过我的计算机代理所有 HTTP 流量。这工作正常,我可以查看和修改所有 HTTP 请求。但是 HTTPS 流量不会通过。我已经导出了代理的证书,但我发现-文件夹中没有cacert.bks-file /system/etc/security

那么如何将我的自定义证书添加到受信任的证书列表中keytool呢?

4

3 回答 3

17

我遇到了一个自签名网络服务器证书的问题,我无法通过打开它来安装它。我在 logcat 中有一个“CertInstaller(28614):没有找到匹配的私钥”。我的解决方案:

如果您想在不再使用 bks 文件时将新证书安装到 android 系统 cacert 存储中:

你当然必须有根。

  1. 您必须以 pem 格式获取证书(从浏览器导出)。PEM 是一种编码格式,例如:
-----BEGIN CERTIFICATE-----
MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1
...
-----END CERTIFICATE----- 
  1. 您必须获取主题名称的哈希值。

    openssl x509 -inform PEM -subject_hash -in yourcert.crt

你会得到类似 0d188d89 的东西。

  1. 您必须获得证书的文本版本。

    openssl x509 -inform PEM -text -in yourcert.crt > yourcert.txt

  2. 您必须在编辑器中切换文本和 pem 部分。它应该如下所示:

-----BEGIN CERTIFICATE-----
MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1
...
-----END CERTIFICATE----- 
Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number:
...
  1. 您将文件重命名为“0d188d89.0”

  2. 将带有 adb 或其他内容的文件复制到 /system/etc/security/cacerts/。

您只需进入设置/安全/受信任的凭据/系统即可检查证书按证书中的“组织”字段排序。

使用的信息来自: http: //nelenkov.blogspot.de/2011/12/ics-trust-store-implementation.html

于 2013-08-22T20:25:33.880 回答
3

Afaik,在 ICS 之后,您无需 root 设备即可安装受信任的证书。有这样的设置。

http://support.google.com/android/bin/answer.py?hl=en&answer=1649774

于 2012-12-21T01:13:59.853 回答
2

由于在 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/

于 2013-11-28T16:54:41.063 回答