草庐IT

关于https抓包那点事

强子ly 2023-10-17 原文
Charles.png

目录

  • 关于Charles
  • Charles安装->授权
  • 手机配置
  • Charles证书申请、信任
  • 添加被监听的https域名、端口
  • END
  • 后续问题补充:
    • 1、显示unknown解决方法
    • 2.1、Install Charles Root Certificate 无反应✨✨✨✨✨(2022.06更新)
    • 2.2、或者无法在钥匙串中打开
  • 一些提高开发效率的使用方法

        我记得刚用这个软件的时候还是15年,那个时候域名大部分还是http的,把电脑开一热点就行了。但是有一些局限性,比如公司都是无线网,没有网线,那就黑了。很久没用过了,冷不丁一打开几乎不会用了,总结个新版吧。

关于Charles

        Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。(深入了解一下https证书校验就能理解了)

一、软件“授权”

1.1、软件下载地址(内含.jar包)
链接: https://pan.baidu.com/s/1bq054ZH
密码: ivmg

chars下载.png

1.2、非绿色版每次启动都需要10s


非绿色版-每次启动都需要10秒.png

1.3、安装->授权


显示包内容.png
替换包内jar文件.png

1.4、如果出现 xxx.app已损坏,打不开.你应该将它移到废纸篓,不要慌

  • 1.4.1、 系统偏好设置... -> 安全性与隐私-->修改为任何来源
  • 1.4.2、 Serria里面没有“任何来源”这一项,需要打开终端执行sudo spctl --master-disable,这个时候再去系统偏好设置... -> 安全性与隐私, 就有了“任何来源”这一项。

二、手机配置

2.1、找到本地IP地址


电脑IP地址.png

寻找本地IP地址.png

2.2、配置手机代理


手机配置代理1.png
手机配置代理2.png
手机配置代理3.png

2.3、安装SSL证书到手机设备


配置描述文件1.png

在手机浏览器(Safari)输入“chls.pro/ssl”


配置描述文件2.png
配置描述文件3.png

三、Charles证书申请、信任

Charles证书申请.png
Charles证书信任.png

四、添加被监听的https域名、端口

添加被监听https域名.png
配置域名、端口.png
⚠️:可使用通配符 * 监听所有域名及端口,即:*:*

五、END

END.png

六、持续更新:

  • 6.1、显示unknown解决方法
    有个朋友说按照我的步骤配完抓包总显示“unknown”,
    unknown.png

    解决:
    设置-->通用-->关于本机-->证书信任设置
    success.png
  • 6.2、install Charles Root Certificate 无反应
- 使用Sava Charles Root Certificate...下载.pem证书
- 双击安装
WechatIMG43.jpeg
- 如果还是没反应,或者无法在钥匙串中打开,直接Reset,重新安装
无法在钥匙串中打开-Reset后重新安装

7、拓展

  • 7.1、修改请求、返回参数
    添加断点.png
修改请求参数.png
修改请求参数-返回结果.png
修改返回值.png
修改返回值-返回结果.png

  • 7.2、使用本地数据进行模拟

  • 7.2.1、先将数据保存到本地


    保存数据
  • 7.2.2、设置本地映射关系


    map local
设置映射关系
  • 7.2.3、取消映射关系


    取消映射关系
反选

  • 7.3、添加域名映射

使用场景:
服务器存在问题,后台要求你把域名改为它的ip,链接到他本地电脑调试,除了修改host之后,也可以使用charls修改域名

WechatIMG185.jpeg
WechatIMG186.jpeg

持续更新

有关关于https抓包那点事的更多相关文章

  1. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  2. ruby-on-rails - 关于 Ruby 的一般问题 - 2

    我在我的rails应用程序中安装了来自github.com的acts_as_versioned插件,但有一段代码我不完全理解,我希望有人能帮我解决这个问题class_eval我知道block内的方法(或任何它是什么)被定义为类内的实例方法,但我在插件的任何地方都找不到定义为常量的CLASS_METHODS,而且我也不确定是什么here,并且有问题的代码从lib/acts_as_versioned.rb的第199行开始。如果有人愿意告诉我这里的内幕,我将不胜感激。谢谢-C 最佳答案 这是一个异端。http://en.wikipedia

  3. ruby - 我怎样才能更好地了解/了解更多关于 Ruby 的知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?

  4. ruby - 关于 Ruby 中 Dir[] 和 File.join() 的混淆 - 2

    我在Ruby中遇到了一个关于Dir[]和File.join()的简单程序,blobs_dir='/path/to/dir'Dir[File.join(blobs_dir,"**","*")].eachdo|file|FileUtils.rm_rf(file)ifFile.symlink?(file)我有两个困惑:首先,File.join(@blobs_dir,"**","*")中的第二个和第三个参数是什么意思?其次,Dir[]在Ruby中有什么用?我只知道它等价于Dir.glob(),但是,我对Dir.glob()确实不是很清楚。 最佳答案

  5. elasticsearch源码关于TransportSearchAction【阶段三】 - 2

    1.回顾.TransportServicepublicclassTransportServiceextendsAbstractLifecycleComponentTransportService:方法:1publicfinalTextendsTransportResponse>voidsendRequest(finalTransport.Connectionconnection,finalStringaction,finalTransportRequestrequest,finalTransportRequestOptionsoptions,TransportResponseHandlerT>

  6. 关于Qt程序打包后运行库依赖的常见问题分析及解决方法 - 2

    目录一.大致如下常见问题:(1)找不到程序所依赖的Qt库version`Qt_5'notfound(requiredby(2)CouldnotLoadtheQtplatformplugin"xcb"in""eventhoughitwasfound(3)打包到在不同的linux系统下,或者打包到高版本的相同系统下,运行程序时,直接提示段错误即segmentationfault,或者Illegalinstruction(coredumped)非法指令(4)ldd应用程序或者库,查看运行所依赖的库时,直接报段错误二.问题逐个分析,得出解决方法:(1)找不到程序所依赖的Qt库version`Qt_5'

  7. ruby - 警告 : PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set, 请参阅 : https://github. com/wayneeseguin/rvm/issues/3212 - 2

    我每次打开终端时都会收到这个错误:警告:PATH设置为RVMruby​​但未设置GEM_HOME和/或GEM_PATH,请参阅:https://github.com/wayneeseguin/rvm/issues/3212这是在我最近安装zsh(oh-my-zsh)后开始发生的我不知道如何设置GEM_HOME和/或GEM_PATH的路径。 最佳答案 我也面临同样的问题,更改.zshrc中的以下行,exportPATH="/usr/local/heroku/bin:.........."到exportPATH="$PATH:/usr/

  8. ruby - 如何获得带有 SSL 客户端证书的 HTTPS 请求以与 Ruby EventMachine 一起使用? - 2

    我正在尝试使用RubyEventMachine访问使用SSL证书身份验证的HTTPSWeb服务,但我没有让它工作。我编写了以下简单代码块来对其进行端到端测试:require'rubygems'require'em-http'EventMachine.rundourl='https://foobar.com/'ssl_opts={:private_key_file=>'/tmp/private.key',:cert_chain_file=>'/tmp/ca.pem',:verify_peer=>false}http=EventMachine::HttpRequest.new(url).g

  9. ruby - Net::HTTP 对 HTTPS 请求的响应极其缓慢 - 2

    出于某种原因,在我的开发机器上,我对通过Net::HTTP执行的HTTPS请求的响应非常非常慢。我试过RestClient和HTTParty,它们都有同样的问题。它似乎是凭空冒出来的。我已毫无问题地提出这些请求数百次,但今天它们的速度慢得令人难以忍受。pry(main)>putsTime.now;HTTParty.get('https://api.easypost.com/v2/addresses');putsTime.now;2015-04-2908:07:08-05002015-04-2908:09:39-0500如您所见,响应耗时2.5分钟。不仅仅是这个EasyPostAPIUR

  10. ruby - 如何在 Ruby 中编写一个简单的 HTTPS 代理服务器? - 2

    我看过几个用Ruby编写HTTP代理的例子,例如thisgistbyTorstenBecker,但我如何扩展它来处理HTTPS,又名“中间人”SSL代理?我正在寻找一个简单的源代码框架,我可以扩展它以满足我自己的日志记录和测试需求。更新我已经在使用Charles,aniftyHTTPSproxyapp类似于Fiddler,它本质上是我想要的,只是它被打包在一个应用程序中。我想自己写一个,因为我对过滤和展示有特定的需求。更新二四处浏览后,我对术语的理解有所好转。我不是在寻找完整的“中间人”SSL代理。相反,它将在我的机器上本地运行,因此我可以接受它提供的任何SSL证书。但是,我需要查看我

随机推荐