gpt4 book ai didi

Android 模拟器无法信任 Charles 代理证书

转载 作者:行者123 更新时间:2023-12-04 22:43:15 25 4
gpt4 key购买 nike

我关注 this tutorial监控 Android 版本 7 模拟器上的 https 流量。
我发现奇怪的一件事是我从 chls.pro/ssl 下载的证书与我通过Charles代理访问网站时遇到的证书不同。
这是我从 chls.pro/ssl 获得的证书
enter image description here
可以从设置 -> 安全 -> 受信任的凭据 -> 用户选项卡中查看此证书。
这是我通过 Charles 代理访问任何网站时发现的证书:
enter image description here
从图片中可以看出,他们的指纹是不同的。
这使我的 Android 模拟器在通过 Charles 代理访问网站时无法信任证书。
enter image description here
为什么证书不一样?
如何在 Android 模拟器上查看 https 流量?
我正在使用最新的 Charles 代理,它是 4.5.6 版。
=============================编辑==================== ===============
安全警告是由模拟器上的浏览器引起的。
我最初使用“浏览器”版本 7.1.2 来访问一个网站。
enter image description here
在我用 Chrome 替换它后,安全警告不再出现。而且我可以查看 Chrome 和网站之间的 https 流量。
但是我仍然无法查看 Android 应用程序和服务器之间的 https 流量。
这是错误消息:
enter image description here
这是我的network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<!-- Trust user added CAs -->
<certificates src="user" overridePins="true" />
</trust-anchors>
</base-config>
</network-security-config>
=============================编辑==================== ===============
Android 应用的 apk 文件是从 google play 下载的。
这是我对apk文件所做的
  • 使用 Apk Extractor 获取 apk 文件.
  • 使用apktool d ${APK_FILE}.apk提取文件。
  • 修改其network_security_config.xmlAndroidManifest.xml
  • 运行apktool b ${APK_FILE}将提取的文件恢复为 apk 文件。
  • 运行apksigner sign -ks my-key.keystore ${APK_FILE}/dist/${APK_FILE}.apk签署apk文件。
  • 将apk文件放到安卓模拟器上并安装。

  • 我不确定上述步骤是否会导致应用程序无法信任 Charles 证书。
    这是原文 network_security_config.xml在我修改它之前。
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
    <base-config cleartextTrafficPermitted="true" />
    <domain-config cleartextTrafficPermitted="false">
    <domain includeSubdomains="true">appapi.appname.com</domain>
    </domain-config>
    </network-security-config>

    最佳答案

    Why are the certificates different?


    显示的第一个证书是 Charles 的“证书颁发机构”(CA) 证书。它是自签名的(请注意“颁发者”详细信息与证书详细信息如何相同),并且不适用于特定域。
    第二个证书是网站证书,由 Charles 的 CA 证书颁发并签名,其主题为单个特定域(未显示),可用于验证与该特定域的连接。
    证书信任的工作方式是您信任一组 CA 证书,并且每当您收到要验证的证书时,您都会查看谁颁发了该证书,并根据您拥有的 CA 来查看您是否信任它们(在某些情况下)情况下,信任链中有几个步骤,因此您一直往上走,直到找到您信任的证书,或者您到达根目录并放弃)。
    那有意义吗?在实践中,Charles 预先生成了一个您需要信任的 CA,然后它根据需要为每个需要一个的单独域生成新证书并使用其 CA 对其进行签名,然后您应该信任这些证书,因为您信任 Charles。

    How can I view the https traffic on the Android emulator?


    显示的证书不是您问题的原因,因此很难提供更多详细信息。查尔斯需要一些手动配置。你能添加更多关于你所做的事情以及你看到的错误的信息吗?
    如果你没有特别嫁给查尔斯, HTTP Toolkit作为替代方法可能会有所帮助。这是我一直在研究的一个开源工具,因为 Charles 像这样设置会很痛苦。它做的所有事情都是一样的,但是证书设置是完全自动化的,所以你不会遇到这个问题。

    关于Android 模拟器无法信任 Charles 代理证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62623935/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com