Charles SSL Proxy适用于Chrome,但不适用于应用

时间:2016-10-05 08:21:50

标签: android proxy charles-proxy

我正在使用运行Android 7的Nexus 5X设备。我无法使用Charles Proxy文档中的最新说明设置代理。我安装了证书,但扩展了wifi设置或nugat。我可以将查尔斯设置为证书但不会让我连接到该wifi(身份验证问题)。所以我把它留下来,不要检查是否正确"。我甚至都不知道这是否相关。

事情就是当我试图嗅闻我的应用https来电时,我看到SSLHandshake: Received fatal alert: certificate_unknown 但是,如果我在同一设备上使用chrome运行Web客户端 - 我可以读取相同api的调用。

底线是适用于浏览器,但不适用于我的应用。我也检查了其他应用程序。相同的输出。

我在这里问的原因是因为我可能需要在我的改装api设置中添加一些不安全的客户端 - 希望不会。

2 个答案:

答案 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模拟器并重新启动模拟器。它现在应该工作。