chales学习笔记之 重定向

OK,先来看一个场景,也是最近工作中遇到的一个case。
公司的APP中有一些业务是第三方做的,因此第三方就需要在开发的时候使用测试版的APP进行调试,但是测试版的APP使用的服务端域名是内网的,外网不可以访问,起初的时候,第三方每次调试都需要来到我们公司,因为给他开一个VPN毕竟不安全,而且推动测试APP使用外网域名也有一定的难度,这着实让第三方开发调试有很大的成本,因此我尝试使用charles和nginx做一个简单的代理提供给第三方使用。以下是技术方案:
1、手机端连接PC上的charles
2、在charles上面将内网域名通过map remote映射到我们公司的一台有公网ip的服务器A上面
3、在服务器A上面通过nginx将APP的请求转发到内网中

一、代理HTTP请求

总体来讲,HTTP请求的代理还是比较简单的:
假设我们的内网域名为: wappass.qatest.xxx.com
我们的外网可访问的ip是180.149.145.xxx, 端口号是 8078,那我们在charles的配置为:

http
这样配置后,域名为wappass.qatest.xxx.com通过charles的请求都会转发到180.149.145.xxx,并且路径中增加了/proxy/wappass/,然后我们只要在180.149.145.xxx的nginx服务器上面进行如下的配置就ok了:

二、代理HTTPS请求

经过上面的方案,虽然已经暂时的解决了目前遇到的问题,但是切换HTTPS是迟早的事,因此此处我研究了下代理HTTPS请求。
如果按照(一)中的方式代理HTTPS请求,会发现走不通。代理https请求时,map remote中的域名不能变更,此处以passport.baidu.com为例:

https
进行上面这个配置后,明显passport.baidu.com是访问不到我们的代理服务器的,因此此处就需要设置DNS,打开Tools下面的DNS Spoofing进行如下设置即可:

dns
当然,我们也需要加上如下nginx配置:

经过这样的设置后,passport.baidu.com域名的请求便会经由我们的服务器进行转发。


上面的文章是转载的。

但是在使用过程中碰到的坑说一下:

1.路径匹配问题,这里面port,path,query都可以不填写,这样最简单,也避免了匹配的各种坑。

2.https转发的问题,最大的问题一是记得要配置dns,第二其实是抓包https本身的问题就是:一定要确定你的手机上安装了证书,这个证书其实是抓包https必然用到的但是网上关于这个证书的下载地址有很多:1.http://chls.pro.ssl 2.http://charlesproxy.com/getssl 可能还有其他的,我是第二个链接下载的证书才有用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值