cacerts.bks不存在

1' *_* -- 7 https android sniffing keytool ssl-certificate

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

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

use*_*846 16

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

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

当然你必须有根.

  1. 您必须获得证书(从浏览器导出)作为pem格式.PEM是一种编码格式,如:
-----BEGIN CERTIFICATE-----
MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1
...
-----END CERTIFICATE----- 
Run Code Online (Sandbox Code Playgroud)
  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:
...
Run Code Online (Sandbox Code Playgroud)
  1. 您将文件重命名为"0d188d89.0"

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

您可以通过进入设置/安全/可信凭证/系统来检查证书是按证书中的"组织"字段排序的.

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

  • 非常感谢!你的答案保存了我的一天:)这里有一个小小的附录:如果你使用openssl版本> = 1.0,那么你必须使用`-subject_hash_old`而不是`-subject_hash` (4认同)
  • 您应该将“-noout”添加到“openssl”命令中,这将消除第 4 步的需要。 (2认同)