首页 文章

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

提问于
浏览
32

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

  • 网址:https://XX.XX.XXX.XXX/

  • 状态:失败

  • 失败:SSLHandshake:收到致命警报:unknown_ca

  • 响应代码: - 协议:HTTP / 1.0

  • 方法:CONNECT

请帮忙!

9 回答

  • 9

    从iOS 10.3开始,您还需要转到设置>常规>关于>证书信任设置并信任Charles证书 .

    enter image description here

  • 3

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

  • 0

    有些人我最终在这里安装了知识产权N设备即使安装了证书也不会对查尔斯进行SSL - 现在http://chls.pro/ssl

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

  • 4

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

  • 14

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

    注意:在iPhone上应该类似

  • 4

    正如@BerkayYıldız所说,它可能使用ssl / certificate pinning .

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

    整个逻辑是:

    LEVEL 1 :for normal http :核心逻辑:

    • PC:Mac / Windows

    • Charles设置了http代理

    • 设置端口

    • app使用Charles代理
      在Wifi里面

    • ,设置

    • 主机IP

    • 端口

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

    LEVEL 2 :for encrypted https

    • PC

    • 安装Charles根证书

    • Mac:使用 Key Chain 来信任Charles Root CA.

    • 查尔斯

    • Enable SSL Proxying

    • 为您的特定api地址设置位置过滤器

    • 电话

    • app

    • 安装Charles Root CA.

    • 注意:类型应选择: VPN and Application

    • NOT选择:WLAN

    • makeure证书安装成功

    • Trusted Credentials -> User ,可以看到安装了Charles证书

    LEVEL 3 :对于使用 ssl pinning 的SPECIAL https


    更详细的总结请参考我的帖子(中文):12

  • -2

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

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

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

  • 47

    如果你在Android手机上使用Facebook登录的应用程序得到这个,我通过卸载fb应用程序来解决它 . 然后使用移动fb网络,我可以查询所有内容 . 安装了fb app后,fb api因SSL错误而失败 .

  • 0

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

    人们无法使用Charles在我的手机上跟踪https .

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

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

    Android从Android N开始,您需要为您的应用添加配置,以使其信任Charles SSL Proxying生成的SSL证书 . 这意味着您只能对您控制的应用程序使用SSL代理 . 要将您的应用配置为信任Charles,您需要添加一个网络安全配置文件到您的应用程序 . 此文件可以覆盖系统默认值,使您的应用程序可以信任用户安装的CA证书(例如Charles Root证书) . 您可以指定这仅适用于应用程序的调试版本,以便 生产环境 版本使用默认信任配置文件 . 将文件res / xml / network_security_config.xml添加到您的应用程序:然后在应用程序的清单中添加对此文件的引用,如下所示:...

相关问题