如何在 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 证书?的主要内容,如果未能解决你的问题,请参考以下文章