如何在 Windows 上使用 Charles Web Proxy 和最新的 Android Emulator 配置 SSL 证书?

Posted

技术标签:

【中文标题】如何在 Windows 上使用 Charles Web Proxy 和最新的 Android Emulator 配置 SSL 证书?【英文标题】:How to configure SSL certificates with Charles Web Proxy and the latest Android Emulator on Windows? 【发布时间】:2011-04-27 23:08:41 【问题描述】:

我想使用 Charles 网络代理在 Windows 中使用 android 模拟器。我已经成功设置了 charles 并使用命令行启动了模拟器:

emulator -http-proxy 127.0.0.1:8888 @NexusOne

我可以看到来自 Charles 中的 android 模拟器的流量,但问题是我正在开发一个使用 SSL 的实时 API,我不确定如何配置 Charles 让我播放数据被发送和接收。我知道在 Charles 中设置 SSL 的两个区域(代理 -> 代理设置 -> SSL 和代理 -> 客户端 SSL 证书)但我找不到任何体面的文档让我可以做我想做的事.有没有人有查尔斯的经验,或者一般的证书,谁可以解释如何实现这一点。也许证书入门也很好,因为我似乎不知道为什么这如此困难。

【问题讨论】:

模拟器命令是什么?你是怎么用的? 【参考方案1】:

这里提到的认证安装步骤都是正确的https://***.com/a/35200795/865220

但是,如果您像我一样不得不为每个新网址单独启用 SSL 代理,那么要为所有主机名启用,只需在 SSL 代理设置中的主机和端口名称列表中输入 *,就像这样:

【讨论】:

【参考方案2】:

要使用 charles 远程捕获 http 或 https 流量,您需要执行以下操作:

HOST - 运行 Charles 并托管代理的机器 CLIENT - 用户的机器生成您将捕获的流量

主机

    安装完全许可的 charles 版本 代理 -> 代理设置 -> 勾选“启用透明 HTTP 代理” 代理 -> SSL 代理设置 -> 勾选“启用 SSL 代理” 代理 -> SSL 代理设置 -> 单击添加按钮并在两个字段中输入 * 代理 -> 访问控制设置 -> 添加本地子网(例如:192.168.2.0/24)以授权本地网络上的所有计算机使用另一台计算机的代理 建议在 charles 中设置“自动保存工具”,这将自动保存和轮换 charles 日志。

客户端机器:

    安装并永久接受/信任 charles SSL 证书http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/ 配置 IE、Firefox 和 Chrome 以使用 charles 托管代理的套接字(例如:192.168.1.100:8888)

当我对此进行测试时,我拿起了两行 Facebook HTTPS 聊天(一行是给某人,另一行是 FROM)

如果您使用以下方式启动模拟器,您也可以通过这种方式捕获 android 模拟器流量:

emulator -avd <avd name> -http-proxy http://local_ip:8888/

其中 LOCAL_IP 是您计算机的 IP 地址,而不是 127.0.0.1,因为那是模拟手机的 IP 地址。

来源:http://brakertech.com/capture-https-traffic-remotely-with-charles/

【讨论】:

Install and permanently accept/trust the charles SSL certificate 嗯,这不安全,是吗?我宁愿不要让任何人对我施加 MITM。 找到了解决方案:codeblog.shape.dk/blog/2014/01/06/… 我的 Charles 代理版本中没有 SSL 选项卡... (v4) @fgysin 选项卡有它自己的设置页面。它可以通过 Proxy --> SSL Proxying Settings 打开 @SalmanAbbas 所写内容的更新:永久接受/信任证书实际上不再是安全风险,因为 Charles 唯一地生成它。这意味着您甚至可以信任实时设备上的 SSL 根证书,而不会增加太多风险。【参考方案3】:

这些东西帮助了我

    转到代理 -> SSL 代理设置 -> 添加 在此处添加您的站点名称并提供端口号为 8888

    在左侧面板上右键单击您的站点名称,然后选择“启用 SSL 代理”

希望这对那里的人有所帮助。

【讨论】:

【参考方案4】:

在 Charles 中,转到代理>>代理设置并选择 SSL 选项卡。将您的主机添加到位置列表。

例如,如果您的安全呼叫将转到 https://secure.example.com,您可以输入 secure.example.com 或 *.example.com。

完成上述操作后,您可能需要右键单击 Charles 主窗口中的调用并选择 SSL 代理选项。

希望这会有所帮助。

【讨论】:

2017:不要忘记安装 Charles SSL 证书:CharlesProxy.com/getssl @salonMonsters 出于某种原因,该网站在我的 android 模拟器上没有做任何事情......只是说如果操作系统配置为允许证书会这样做 我在代理设置中没有看到任何 SSL 选项卡 @Hlung 你应该直接在代理菜单下看到它作为“SSL代理设置” 这些说明是旧的/不正确的。正确的方法是“代理”>“SSL 代理设置...”。确认 v4.2.7。苹果系统。适用于评估版。【参考方案5】:

Charles 提供 HTTPS 代理的方式发生了一些变化。

首先,证书安装选项已移至帮助菜单。

Help -> SSL Proxying -> Install Charles Root Certificate
Help -> SSL Proxying -> Install Charles Root Certificate in ios Simulators

其次,从 iOS 9 开始,您必须在您的 Info.plist 中提供 NSAppTransportSecurity 选项,如果您希望 Charles 作为中间人正常工作,您必须添加:

<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>

作为您的域的一部分,请参阅完整示例:

<key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
        </dict>

原因是(我猜想)Charles 在充当中间 https 服务器的人之后,在某些时候以清晰的 http 进行通信。

最后一步是在 Charles 中为此域激活 SSL 代理(右键单击域并选择启用 SSL 代理)

【讨论】:

【参考方案6】:

这里值得一提的是在 Android 设备中执行此操作的分步说明。 iOS 应该是一样的:

    打开查尔斯 转到代理 > 代理设置 > SSL 选中“启用 SSL 代理” 选择“添加位置”并输入主机名和端口(如果需要) 单击确定并确保选中该选项 从这里下载 Charles 证书:Charles cert > 通过电子邮件将该文件发送给自己。 在您的设备上打开电子邮件并选择证书 在“为证书命名”中输入您想要的任何内容 单击“确定”,您应该会收到证书已安装的消息

然后您应该能够在 Charles 中看到 SSL 文件。如果您想拦截和更改值,您可以使用非常棒的“地图本地”工具:

    在 Charles 中转到工具 > 地图本地 选择“添加条目” 输入要替换的文件的值 在“本地路径”中选择您希望应用加载的文件 点击确定 确保该条目已被选中并单击“确定” 运行您的应用 您应该会在“注释”中看到您的文件加载而不是实时文件

【讨论】:

我没有将证书通过电子邮件发送到设备,而是在设备的浏览器中访问了charlesproxy.com/charles.crt,它运行良好。 这是陈旧的文档,适用于旧版本的 Charles 仍然可以在此处找到旧版本的 Charles:charles.software.informer.com/download【参考方案7】:

对我有用的东西 - 真的应该转移到 iPhone 上:

查尔斯

    启用透明 Http 代理 启用 SSL 代理 右键单击传入请求并选择 SSL 代理

苹果机

    下载 Charles CA 证书包http://www.charlesproxy.com/ssl.zip 给自己发电子邮件 charles-proxy-ssl-proxying-certificate.crt

iPhone

    在端口 8888 上为 Charles 启用 http 代理 选择并安装电子邮件附件,是的,相信它!

瞧,您现在可以查看来自 SSL 代理中添加的域的加密流量

【讨论】:

【参考方案8】:

您还应该从 Charles 帮助菜单中单击“安装 Charles CA SSL 证书..”。在http://blog.noodlewerk.com/general/tutorial-using-charles-proxy-to-debug-https-communication-between-server-and-ios-apps/查看更多详细说明

【讨论】:

以上是关于如何在 Windows 上使用 Charles Web Proxy 和最新的 Android Emulator 配置 SSL 证书?的主要内容,如果未能解决你的问题,请参考以下文章

windows charles 断点怎么使用

如何使用 Charles 拦截来自安卓手机的请求?

如何在具有代理设置的系统中使用 charles?

Charles抓https请求

Windows系统下使用Charles抓取Android模拟器http请求

如何使用charles抓取手机上的操作