我正在使用运行Android 7的Nexus 5X设备。我无法使用Charles Proxy文档中的最新说明设置代理。我安装了证书,但扩展了wifi设置或nugat。我可以将查尔斯设置为证书但不会让我连接到该wifi(身份验证问题)。所以我把它留下来,不要检查是否正确"。我甚至都不知道这是否相关。
事情就是当我试图嗅闻我的应用https来电时,我看到SSLHandshake: Received fatal alert: certificate_unknown
但是,如果我在同一设备上使用chrome运行Web客户端 - 我可以读取相同api的调用。
底线是适用于浏览器,但不适用于我的应用。我也检查了其他应用程序。相同的输出。
我在这里问的原因是因为我可能需要在我的改装api设置中添加一些不安全的客户端 - 希望不会。
答案 0 :(得分:2)
以下是如何配置apk以使CharlesProxy在Android 7中运行的方法。
的Android
从Android N开始,您需要向应用添加配置,以使其信任Charles SSL Proxying生成的SSL证书。这意味着您只能对您控制的应用程序使用SSL代理。
要将您的应用配置为信任Charles,您需要向应用添加网络安全配置文件。此文件可以覆盖系统默认值,使您的应用程序可以信任用户安装的CA证书(例如Charles Root证书)。您可以指定这仅适用于应用程序的调试版本,以便生产版本使用默认信任配置文件。
将文件res / xml / network_security_config.xml添加到您的应用中:
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
然后在应用的清单中添加对此文件的引用,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<applicationandroid:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>
您可以在此处找到更多详细信息:
https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
答案 1 :(得分:0)
在Charles中,选择帮助 - &gt; SSL代理 - &gt;在IOS模拟器中安装Charles Root证书,关闭iOS模拟器并重新启动模拟器。它现在应该工作。