Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
golang中的GoProxy SSL拦截_Ssl_Https_Go_Proxy - Fatal编程技术网

golang中的GoProxy SSL拦截

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

我正试图阻止通过HTTPS发送的任何请求

它非常适合HTTP,但是HTTPS似乎能够完全避免我的代理。我在firefox中使用foxyproxy将其设置为使用我的代理

当来自浏览器的请求通过HTTP请求时,以下代码将打印URL,但通过HTTPS我什么也看不到

你知道为什么吗

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中的问题向我提问