alibaba / anyproxy

A fully configurable http/https proxy in NodeJS
http://anyproxy.io
Apache License 2.0
7.86k stars 1.23k forks source link

直接访问ip作为hostname的https无法代理请求 #89

Open JoysCode opened 8 years ago

JoysCode commented 8 years ago

遇到了大量使用https://x.x.x.x 使用ip格式的无法正常代理。 而且查看本地的cert文件夹,没有任何ip格式的证书。

JoysCode commented 8 years ago

说明下,目前测试的不能用的接口是我公司内部服务的一些https接口。目前没有找到原因。通过其他的代理工具(charles、burpsuite)都是可以的。

maricoliu commented 8 years ago

表示遇到同样的问题,app上的https接口无法获取到数据,charles,fiddler都可以

codingfishman commented 8 years ago

有没有开启https的选项? anyproxy --intercept

JoysCode commented 8 years ago

@codingfishman 肯定是有开启的,其他的https流量没问题,抓包看,会在最后阶段发起FIN包中断证书验证的过程。

codingfishman commented 8 years ago

@JoysCode 明白你的意思了。 我本地直接代理IP的时候也能重现这种现象,我们会尽快修复,谢谢反馈!

blackangeldsf commented 7 years ago

@codingfishman 我好像也遇到了这个问题,修改了windows系统的hosts文件后,仍然是有错误。具体报错信息如下:

AnyProxy Inner Error

Oops! Error happend when AnyProxy handle the request.

This is an error occurred inside AnyProxy, not from your target website.

Error: Error: unable to verify the first certificate URL: https://caq.dsfsheng.cc/ Error: unable to verify the first certificate at Error (native) at TLSSocket. (_tls_wrap.js:1092:38) at emitNone (events.js:86:13) at TLSSocket.emit (events.js:185:7) at TLSSocket._finishInit (_tls_wrap.js:610:8) at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:440:38)

chengaomin commented 6 years ago

遇到了同样的问题,有临时解决方案吗 @codingfishman

chengaomin commented 6 years ago

@codingfishman 求帮助啊,实在急用

codingfishman commented 6 years ago

@JoysCode AnyProxy将在近期发布支持IP代理的功能版本

codingfishman commented 6 years ago

@blackangeldsf 是不是代理的目标地址,本身也是一个自签证书的服务器?由于自签的证书不能被Nodejs识别,你可以加上一个启动参数来解决, 如 anyproxy -i --ignore-unauthorized-ssl 来忽略目标服务器的证书错误。

codingfishman commented 6 years ago

@chengaomin 你遇到的是不是和 @blackangeldsf 一样的错误?如果是,加上同样的参数即可

aztack commented 5 years ago

@codingfishman 对有域名的https请求可以正常截获并修改。 对https://<ip>:<port>/api/get形式的请求无法请求(超时) 在hosts文件中设置 <ip> non-exists-domain.com 然后请求 https://non-exists-domain.com:<port>/api/get 一切正常

aztack commented 5 years ago

@JoysCode AnyProxy将在近期发布支持IP代理的功能版本 Comment on Nov 23, 2017 有进展么? 现在已经2019了...

HaoCherHong commented 4 years ago

我把 lib/utils.js 中的 isIpDomain 函數強制返回 false 一切就正常了。

無法理解 lib/httpsServerMgr.jsgetSharedHttpsServer 函數的行為,創建了 IpDomainHttpsServer 後,返回的 serverInfo 是 目標 IP + 本地 Port。 所以導致代理的請求被送到一個不存在的地方。