我正在使用运行
Android 7的Nexus 5X设备.我无法使用Charles Proxy文档中的最新说明设置代理.我安装了证书,但扩展了wifi设置或nugat.我可以将charles设置为证书,但这不会让我连接到该wifi(身份验证问题).所以我把它留作“不检查正确性”.我甚至不知道这是否相关.
问题是,当我试图嗅探我的应用程序https调用时,我看到SSLHandshake:收到致命警报:certificate_unknown
但是,如果我在同一设备上使用chrome运行Web客户端 – 我可以读取相同api的调用.
底线是它适用于浏览器,但不适用于我的应用程序.我也检查了其他应用程序.相同的输出.
我在这里问的原因是因为我可能需要在我的改装api设置中添加一些不安全的客户端 – 希望不是.
最佳答案 以下是如何配置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/