【问题标题】:CharlesProxy SSL Handshake failure on Android NougatAndroid Nougat 上的 CharlesProxy SSL 握手失败
【发布时间】:2017-12-14 18:46:14
【问题描述】:

我正在尝试代理运行 Android 7.1.2 的手机,以查看通过我正在使用的应用发布的获取和帖子。使用 CharlesProxy 4.1.4,这对于 iOS 设备来说很容易实现。但是,该应用程序在 Android 上的功能有所不同,我们想知道如何。

我已将我的设备配置为通过输入 IP 和端口连接到 Charles,然后导航到 chls.pro/ssl 以获取 CA 证书。即使在 chrome 上,证书也可以毫无问题地下载和安装。我可以看到查尔斯打来的电话,但我看不到电话的任何内容。相反,它被列为<unknown>,说明SSLHandshake: Received fatal alert: certificate_unknown

还有其他方法可以让我真正信任此证书吗?还是有另一种方法可以成功地允许 Android 使用 SSL?同样,我的所有设置都适用于 iOS 设备,因此我不需要该操作系统的示例。

谢谢

【问题讨论】:

  • 人们是否只是通过阅读新问题试图在其中戳洞?似乎在这里运行的磨坊......我没有使用任何代码。我正在尝试查看针对我的公司使用但无法控制的可公开访问的应用程序的调用。
  • “我没有使用任何代码”——那么你的问题就跑题了,因为 Stack Overflow 是针对编程问题的。
  • 您是否为 wifi、应用程序或两者都安装了 ssl 证书?我经常遇到同样的问题,但并不总是知道它来自哪里。它有时第一次工作,有时不......

标签: certificate ssl-certificate charles-proxy android-7.1-nougat


【解决方案1】:

从 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 ... >
    <application android:networkSecurityConfig="@xml/network_security_config" ... >
        ...
    </application>
</manifest>

参考:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

【讨论】:

  • 那么如果我们想嗅探另一个应用的流量,我们必须使用N之前的Android版本?
  • 是的...我就是这么做的
  • 难道没有更简单的方法可以让应用程序使用证书吗?全部添加xml文件有点麻烦。
  • 将 xml 添加到应用程序的最简单方法是什么?我应该在本地下载apk,用Eclipse编辑它并更改里面的xml文件,然后将它安装在android设备上吗?另外,当应用程序已经有一个带有信息的 network_security_config.xml 时该怎么办,我应该替换它吗?
  • 不应该也包括&lt;base-config cleartextTrafficPermitted="true" /&gt;吗?但随后 IDE 会发出警告。有什么方法可以在这里设置它仅用于调试?
猜你喜欢
  • 2016-01-05
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
  • 2012-10-11
  • 2015-03-16
  • 2021-12-28
相关资源
最近更新 更多