【问题标题】:Problems Android device - Charles Proxy - internet connection问题 Android 设备 - Charles Proxy - 互联网连接
【发布时间】:2019-03-16 01:33:41
【问题描述】:

我正在尝试从 Android 设备获取 Charles Log,但它无法正常工作。在我使用代理设置 Wifi 后,android 设备的浏览器将无法连接到互联网。 我已经列出了在我的计算机上设置 Charles Proxy 并将 android 设备配置为使用 charles 代理的步骤。

我非常感谢任何帮助,但我只想指出几点:

*我为 Android 设备代理设置提供了正确的 Wifi 网络和 IP 地址(请参阅下面的第 18 步)。

*据我所知,我没有在安卓设备上使用 VPN 或防火墙。我该如何仔细检查?

*我已经使用 2 个版本的 Charles Proxy 尝试了以下步骤。
查尔斯代理:4.2.7
查尔斯代理:3.12.3 我每次都删除并重新安装程序。

*Android 设备上的 Chrome 和 Firefox 将无法通过代理设置连接到互联网。

请参阅下面的列表以了解该步骤,非常感谢!!!


系统: macOS 10.10.5 安卓:6.0.1

  1. 菜单:代理:勾选 Mac OS 代理
  2. 菜单:帮助 > SSL 代理 > 安装证书
  3. 在钥匙串中 > 找到证书 > 单击始终信任(输入密码)
  4. 在 Charles Proxy 中,单击代理菜单
  5. 菜单 > 代理 > SSL 代理设置
  6. 勾选启用 SSL 代理
  7. 点击添加
  8. 主机 * 端口 443。
  9. 菜单:代理 > 代理设置
  10. 单击的代理选项卡:Http 代理端口:8888
  11. 勾选:启用透明 HTTP 代理
  12. 单击了 MacOSX 选项卡
  13. 勾选:启用 Mac OS 代理、使用 HTTP 代理、启动时启用 MacOS 代理
  14. 单击 Mozilla Firefox 选项卡:启用 Mozilla Firefox 代理、使用 HTTP 代理、启动时启用 Mozilla Firefox 代理。
  15. 菜单:代理 > 访问控制设置
  16. 点击添加,设置IP范围0.0.0.0/0
  17. 勾选:提示允许未经授权的连接。
  18. 菜单 > 帮助 > 本地 IP 地址 - 记下这个 IP 地址并使用这个号码来设置安卓设备。

在安卓设备上:

  1. 使用 USB 数据线将 Android 连接到 Mac。端口 USB 2.0
  2. 设置 > 网络和互联网 > Wi-Fi
  3. 长按激活的 wifi 连接,选择:修改网络
  4. 展开高级选项,点击代理下方的无并选择手动
  5. 在代理主机名字段中输入第 18 步中的 IP 地址。
  6. 在代理端口字段中输入 8888
  7. 单击保存。
  8. 打开 Chrome
  9. 输入http://charlesproxy.com/getssl/或短版chls.pro/ssl
  10. 获取错误消息:“err_proxy_connection_failed”或“err_connection_timed_out” 请注意:在 Mac 上的 Charles Proxy 上不会出现关于 Android 设备的对话框。
  11. 据我所知,我不使用 VPN,也不在安卓设备上使用防火墙。我怎样才能检查这个?

手动将安全证书添加到 Android 设备: 30:在 Mac 桌面上 – Charles Proxy > Menu Help > SSL Proxying > Save Certificate 31. 将证书保存到桌面。 32. 通过 USB 线将证书复制到安卓设备/下载文件夹(不在 SD 卡上)。

在安卓设备上: 33.找到charles代理证书文件,长按。

  1. 在对话框中:重命名证书 Charles Proxy 证书

  2. 点击的 VPN 和应用程序

  3. 点击保存。

  4. 注意:这里不要求我重新输入设备 PIN

  5. 打开 Chrome 应用程序。获取错误消息“err_proxy_connection_failed”或“err_connection_timed_out”

  6. Android 设备:第三方可能正在观看的通知。

  7. 我检查是否安装了证书:设置 > 安全 > 可信凭据 > 用户 > 安装了 XYZ Charles Proxy 安全证书。

我还使用带有 crt 和 pem 后缀的证书完成了步骤 30 到 38。

我尝试了以下变体: *在没有 USB 连接到 mac 的情况下在 Android 设备上设置代理 *通过 USB 连接到 Mac 时在 Android 设备上设置代理 *在打开 Charles Proxy 之前和之后在 Android 设备上设置代理。

我不知道接下来要尝试什么!希望您能提供帮助,并感谢您阅读本文。 :)

【问题讨论】:

  • 你应该接受答案
  • @Ana,我面临同样的问题。你能解决这个问题吗?
  • 我也有同样的问题。所有推荐的步骤都已完成。但是,来自 Android 设备的流量不会通过 Charles 代理。我想知道这是不是因为我的 Android 设备是通过加密狗连接到 Mac Pro 的?

标签: android macos ssl proxy charles-proxy


【解决方案1】:

我在我的 Windows 机器上使用 Charles Proxy。我关注了This blog for details

步骤可以总结如下。

  • 为 Mac/Windows 笔记本电脑下载并安装 charles 代理
  • 将您的移动设备和笔记本电脑连接到同一网络中
  • 在 Charles 中启用开始录制
  • 如果笔记本电脑也已连接,则在选定的移动 wifi 网络中启用代理
  • 在笔记本电脑 Charles 帮助选项中提供 IP 的详细信息> SSL 代理 > 在移动设备或远程浏览器上安装 charles 证书
  • 确保提供相同的 IP 和 8888 端口号
  • 打开手机浏览器浏览http://chls.pro/ssl
  • 这应该在移动设备中下载并安装 charles 证书
  • 在笔记本电脑中,您可以看到设备尝试连接的通知。也允许这样做
  • 现在您可以在 Charles 中查看您的移动设备的所有网络日志
  • OS 7+设备需要额外包含一个配置文件,如下

network_security_config.xml content should be as follows

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>

【讨论】:

    【解决方案2】:

    我什至买了查尔斯,也遇到了同样的问题。我用不同的设备尝试过,并在两个不同的 Wifi 上尝试过。没有。得到与安娜相同的错误。 是的,我已经设置了网络安全配置。

    【讨论】:

      【解决方案3】:

      从 Android 10 开始,它需要额外的配置才能拦截来自 Android 设备的 HTTPS 流量。

      添加到 res/xml/network_security_config.xml

      <network-security-config>
      <debug-overrides>
          <trust-anchors>
              <!-- Trust user added CAs while debuggable only -->
              <certificates src="user" />
              <certificates src="system" />
          </trust-anchors>
      </debug-overrides>
      
      <base-config cleartextTrafficPermitted="true">
          <trust-anchors>
              <certificates src="system" />
          </trust-anchors>
      </base-config>
      
      <domain-config>
          <!-- Make sure your URL Server here -->
          <domain includeSubdomains="true">your_test_url</domain>
          <trust-anchors>
              <certificates src="user"/>
              <certificates src="system"/>
          </trust-anchors>
      </domain-config>
      

      添加到 AndroidManifest.xml

      <manifest>
          <application android:networkSecurityConfig="@xml/network_security_config">
          </application>
      </manifest>
      

      如果您仍然在苦苦挣扎,请查看完整文档和示例项目,地址为 https://docs.proxyman.io/debug-devices/android-device#sample-android-project

      【讨论】:

        【解决方案4】:

        如果您为 Android N 及更高版本运行 Charles 代理,请确保您已将以下内容添加到您的 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 ... >
            <application android:networkSecurityConfig="@xml/network_security_config" ... >
                ...
            </application>
        </manifest>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-30
          相关资源
          最近更新 更多