由于网络故障,Charles SSL证书下载失败

32

我的三星Galaxy S5手机上,Charles的SSL/HTTPS代理正常工作。

在非调试模式下,我删除了证书,因为手机会警告我连接被第三方监视。

现在,当我尝试从http://www.charlesproxy.com/getssl/重新下载证书时,出现了一个网络故障错误:charles-proxy-ssl-proxying-certificate.pem下载失败:

charles-proxy-ssl-proxying-certificate.pem下载失败,原因是网络故障。

手机已设置为使用Charles代理。HTTP流量可以在Charles中检查。

我正在运行Charles 3.11.4,但也测试过3.11.2。手机运行Android 5.0。

我用LG Nexus 5进行了测试,证书下载和安装都没有任何问题。


我在 Nexus 5 上运行着 5.1.1 版本,使用 Chrome 尝试下载时也遇到了同样的问题。我想知道是最近更新导致的问题吗? - Andrew Ebling
当我重现问题时,我看到以下ADB输出(为了适应评论而修剪了一些重复项):D / DownloadManager:[2693]开始 V / NotificationService:pkg = com.android.providers.downloads canInterrupt = false intercept = true W / DownloadManager:[2693]使用状态CANNOT_RESUME请求停止:无法知道下载的大小,放弃 D / DownloadManager:[2693]完成,状态为CANNOT_RESUME - Andrew Ebling
2
我已经联系了Charles Proxy的支持团队并提供了这个问题的链接。希望他们能很快回复。 - Andrew Ebling
8个回答

54

作为解决方法,将此输入您的地址栏并按下“前往”按钮。

data:text/html,<a href=http://www.charlesproxy.com/getssl/>Save This Link

长按出现的链接,选择“保存链接”。然后打开您下载的证书。


5
至今为止最直接的解决方案。 - Gapp
1
非常感谢你!! - ShiningLight
谢谢您的询问 - user1405990

26

这是Chrome Mobile浏览器的问题 - 尝试使用其他浏览器,Dolphin表现良好。 这又是Google在Chrome移动版中破坏的另一件事。


2
Firefox允许我下载证书,但它没有出现在手机用户的受信任凭据中。假设Firefox有自己的证书存储。 - alexbirkett
2
正确的做法是 Firefox 只安装在它自己的证书存储中。我将在下面粘贴我修改后的答案。 - Andrew Ebling

21

我通过以下方式手动解决了这个问题:

  1. 导出Charles证书 (Help > SSL Proxying > Export Charles Root Certificate and Private Key...) 并设置适当的密码
  2. 将证书复制到Google Drive
  3. 在Android设备上禁用手动代理设置
  4. 在Android设备上进入 设置 > 安全性 > 从存储设备安装
  5. 选择包含证书的Google Drive帐户
  6. 选择证书文件并输入密码
  7. 为“凭证使用”选择“VPN和应用程序”

然后,证书被加载到系统范围内的用户凭据存储中,我成功地对我正在处理的应用程序进行了SSL代理。


1
谢谢@Andrew,我按照你的步骤做了,也让它正常工作了。 - t3rse
1
我通过Slack将证书发送到了我的同事手机上,然后从那里下载。在这种情况下,我也遇到了这个问题:https://code.google.com/p/android/issues/detail?id=189785. 安装存储 > 下载中的所有内容都变灰了。解决方法就如链接中所述,首先浏览到顶层设备存储,然后找到下载文件夹并安装证书。 - Anentropic
最佳解决方案。在下载Firefox并尝试href解决方案后,我发现更容易的方法是导出证书并安装它。我使用文件传输保存了证书。然后只需使用文件浏览器单击设备即可运行...您可以使用此选项更新答案...谢谢。 - TomCobo

3

我很简单地完成了这个操作。

  1. 访问URLhttp://charlesproxy.com/getssl/
  2. 在Charles中,您应该看到来自服务器的带有证书的响应。就像这个屏幕截图: http://i.stack.imgur.com/pe3z7.png

  3. 将此文本复制到txt文件中,并将其保存为*.cer

  4. 将*.cer附加到电子邮件中,并将其发送到设备。
  5. 在您的手机上,您应该点击附件并安装证书。
  6. 完成!

1
我也遇到了charles-ssl-certificate-download-failed-due-to-network-failures错误。我已经将charles更新到3.11.5版本,然后在我的移动设备上安装了charles证书。 它非常有效。我猜测可能是在之前的版本中我的浏览器没有配置使用charles代理,或者之前的charles版本存在某些问题。 希望对你有所帮助 :)

0

与 Evgeniy Melnikov 建议的类似。

  1. 导出 Charles 证书(帮助 > SSL 代理 > 导出 Charles 根证书和私钥...)并设置适当的密码
  2. 从#1保存证书的位置,将其附加到可从移动设备访问的电子邮件帐户中。
  3. 在移动设备的邮件客户端中下载附件证书文件(到“下载”文件夹)。
  4. 在移动设备的“设置”>“安全”>“从存储安装”(或在某些模拟器中的“设置”>“安全”>“从 SD 卡安装”)中,转到“下载”文件夹并单击下载的证书文件。

  5. 选择证书文件并输入密码。

  6. 选择“VPN 和应用程序”作为“凭据使用”

在设备上安装证书后,更改 WiFi 设置以指向安装和运行 Charles 的机器。


0

经过长时间的挣扎和咒骂,我终于找到了导致Charles出现网络错误/故障的问题。这是由于我的虚拟机创建的附加连接造成的。

对于那些仍然被困扰的人,解决方法是:不要在Help-SSL代理中设置移动设备或远程浏览器上的IP地址安装Charles根证书,而是从Windows上设置实际的IP地址。要获取此IP地址,请转到“网络和共享中心” - 点击当前连接 - 详细信息 - 然后使用IPv4地址下面的IP地址。然后使用Charles中配置的HTTP端口号。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,