查尔斯代理在SSL连接方法上失败

时间:2013-10-01 04:35:29

标签: ssl proxy iptables charles-proxy

我有Android 4.3强制通过IPTABLES使用Charles代理。 查尔斯证书安装在手机上。 我能够在浏览器中捕获正常的SSL流量,如https网站。 所有POST和GET方法似乎都能正常工作。 在特定的应用程序中,使用SSL CONNECT方法时会失败。

  • 网址:https://XX.XX.XXX.XXX/
  • 状态:失败
  • 失败:SSLHandshake:收到致命警报:unknown_ca
  • 响应代码: - 协议:HTTP / 1.0
  • 方法:CONNECT

请帮忙!

9 个答案:

答案 0 :(得分:47)

从iOS 10.3开始,您还需要转到设置>一般>关于>证书信任设置并信任Charles证书。

enter image description here

答案 1 :(得分:14)

您可以在Facebook或Instagram等应用程序中遇到此问题。 Charles证书在某些新应用程序中不起作用,因为它们使用的是名为SSL-PINNING的技术。首先,您必须打破ssl-pinning应用程序系统,或者您可以安装旧版本的应用程序,然后它有时可以工作,但我们需要一个关于ssl固定的新解决方案,以记录此类应用程序的流量。

答案 2 :(得分:9)

有些人我最终在这里使用安卓认证后无法通过查尔斯进行SSL的设备 - 现在在http://chls.pro/ssl

在N中 - 您还需要添加xml文件和安全配置。这篇文章详细介绍了How to get charles proxy work with Android 7 nougat?

答案 3 :(得分:4)

我遇到了同样的问题。安装最新证书后,它就解决了。 enter image description here

答案 4 :(得分:4)

在手机上,访问http://charlesproxy.com/getssl下载证书。在android中下载证书后,它将提示您安装证书,为证书命名并继续。现在应该可以了。

注意:iPhone上应该类似

答案 5 :(得分:3)

如@BerkayYıldız所说,它可能使用ssl /证书固定。

如何修复/避免/禁用ssl固定?

整个逻辑是:

1级:针对normal http: 核心逻辑:

  • PC:Mac / Windows
    • 查尔斯设置了http代理
    • 设置端口
  • 应用使用Charles代理
    • 在Wifi内,设置
      • 主机IP
      • 端口

注意: 计算机端,必须使用wired network无线,否则无法使用移动端网络

2级:针对encrypted https

  • 电脑
    • 安装Charles根证书
      • Mac:使用Key Chain信任Charles Root CA
    • 查尔斯
      • Enable SSL Proxying
        • 为您的特定api地址设置位置过滤器
  • 电话
    • 应用
      • 安装Charles Root CA
        • 注意:类型应选择:VPN and Application
          • 不选择:WLAN
        • 确保证书安装成功
          • Trusted Credentials -> User,可以看到已安装的Charles证书

第3级:对于使用https的特殊ssl pinning


更详细的摘要,请参阅我的帖子(中文):12

答案 6 :(得分:0)

当我尝试在我的Nexus 6p,Android 6.0上安装证书时出现以下错误。 (我按照查尔斯的说明进行操作,并通过http://chls.pro/ssl下载了证书。):

  

无法安装,因为无法读取证书文件。

此问题的解决方案是通过以下方式安装: Settings> Security> Install from storage 导航到cert文件并安装后,一切都按预期工作。

答案 7 :(得分:0)

如果您通过使用Android手机上的Facebook登录名的应用程序获得此功能,则可以通过卸载fb应用程序解决该问题。然后使用移动fb网站代替,我可以查验所有内容。安装了fb应用程序后,fb api失败,并显示SSL错误。

答案 8 :(得分:-2)

我在Android 8.1上使用了Charles 4.2.5和Nexus 6P。

我无法使用Charles在手机上跟踪https。

Plz请注意,在Android N之后,我们无法捕获其他人的正常SSL流量' app。

这是查尔斯的官方网站。 https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

  

Android从Android N开始,您需要在应用中添加配置   为了让它信任Charles SSL生成的SSL证书   代理。这意味着您只能将SSL代理与应用程序一起使用   你控制了。

     

要将您的应用配置为信任Charles,您需要添加一个   网络安全配置文件到您的应用程序。这个文件可以   覆盖系统默认值,使您的应用程序可以信任安装的用户   CA证书(例如Charles Root证书)。你可以指定   这只适用于您的应用程序的调试版本,所以   生产版本使用默认的信任配置文件。

     

将文件res / xml / network_security_config.xml添加到您的应用中:

     

                                        然后在应用的清单中添加对此文件的引用,如下所示:

     

                 ...