我正在尝试代理运行Android 7.1.2的手机,查看通过我正在使用的应用程序制作的获取和帖子。使用CharlesProxy 4.1.4,iOS设备很容易实现。但是,该应用在Android上的功能不同,我们想知道如何。
我已将设备配置为通过输入IP和端口连接到Charles,然后导航到chls.pro/ssl
以获取CA证书。即使在chrome上,证书也可以无故障地下载和安装。我可以看到来自Charles的电话,但我看不到电话的任何内容。相反,它列为<unknown>
,表示SSLHandshake: Received fatal alert: certificate_unknown
。
我还有另一种方式可以信任这个证书吗?或者是否有其他方法可以成功通过Android使用SSL?同样,我的所有设置都适用于iOS设备,因此我不需要该操作系统的示例。
由于
答案 0 :(得分:4)
从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>
然后在应用的清单中添加对此文件的引用,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>
请参阅:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/