golang中的GoProxy SSL拦截
我正试图阻止通过HTTPS发送的任何请求 它非常适合HTTP,但是HTTPS似乎能够完全避免我的代理。我在firefox中使用foxyproxy将其设置为使用我的代理 当来自浏览器的请求通过HTTP请求时,以下代码将打印URL,但通过HTTPS我什么也看不到 你知道为什么吗golang中的GoProxy SSL拦截,ssl,https,go,proxy,Ssl,Https,Go,Proxy,我正试图阻止通过HTTPS发送的任何请求 它非常适合HTTP,但是HTTPS似乎能够完全避免我的代理。我在firefox中使用foxyproxy将其设置为使用我的代理 当来自浏览器的请求通过HTTP请求时,以下代码将打印URL,但通过HTTPS我什么也看不到 你知道为什么吗 func DropHTTPS() net.Listener { listener, _ = net.Listen(CONN_TYPE, CONN_HOST+":"+CONN_PORT) proxy := go
func DropHTTPS() net.Listener {
listener, _ = net.Listen(CONN_TYPE, CONN_HOST+":"+CONN_PORT)
proxy := goproxy.NewProxyHttpServer()
proxy.OnRequest().DoFunc(func (req *http.Request, ctx *goproxy.ProxyCtx) (*http.Request, *http.Response) {
log.Println("url: ", req.URL)
return req, nil
})
go http.Serve(listener, proxy)
return listener
}
编辑:
我刚刚读到了有关HTTPS CONNECT的内容,也许这就是我需要处理HTTPS请求的方式。
goproxy库似乎有HTTPSHandler()
和jackconnect()
可用,尽管我不想中断连接,但我只想阻止它
再次编辑:
这段代码似乎在与HTTP不同的端口上运行HTTPS代理。我不确定这是否需要在Firefox中配置,或者我的代理只能在一个端口上侦听HTTP和HTTPS
此外,我是否需要以不同的方式“倾听”
HandleConnectFunc()
或其他什么?不能在同一端口上侦听http和http,它们是不同的协议。它们也是两种不同的代理设置,因为您需要MITM https来代理它。如果要阻止https,请在防火墙上执行,或将https代理设置为封闭端口。如果在浏览器中设置https代理,它将通过HTTP连接到代理,并使用连接请求。如果您运行的是透明代理,HTTPS需要在与HTTP不同的端口上侦听,以便它准备好接受加密连接。我想终止连接,并使用HTTP/HTML页面响应,说明通过此代理拒绝安全连接。这捕获了连接,但我不知道如何使用自定义响应进行响应:``proxy.OnRequest().HandleConnectFunc(func(主机字符串,ctx*goproxy.ProxyCtx)(*goproxy.ConnectAction,string){log.Println(“connecting:,ctx.Req.URL.host)return goproxy.OkConnect,host}`@amlwwalker您解决了这个问题吗?我解决了!如果你在我的github上查看我参与的项目,并看到芥末,我已经让它在那里工作了。当我通过计算机时,可以链接到它,否则请使用github中的问题向我提问