cacerts.bks不存在

时间:2012-12-20 21:45:39

标签: android https ssl-certificate keytool sniffing

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

那么如何使用keytool将自定义证书添加到可信证书列表?

3 个答案:

答案 0 :(得分:16)

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

如果你想在不再使用bks文件的情况下将新证书安装到android系统cacert商店中:

你当然必须有根。

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

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

    2. 你会得到像0d188d89这样的东西。

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

          

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

      2. 您必须在编辑器中切换文本和pem部分。 它应该是这样的:

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

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

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

          使用的信息来自: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/