看了一下参考文档, 首先要做的是ssl-strip。 在goproxy中有这段代码。
proxy := goproxy.NewProxyHttpServer()
proxy.OnRequest().HandleConnect(goproxy.AlwaysMitm)
proxy.OnRequest().DoFunc(func (req *http.Request, ctx *goproxy.ProxyCtx) (*http.Request, *http.Response) {
if req.URL.Scheme == "https" {
req.URL.Scheme = "http"
}
return req, nil
})
proxy.Verbose = *verbose
log.Fatal(http.ListenAndServe(*addr, proxy))
接下来会给出原理以及实现.
参考链接:
https://www.zhihu.com/question/22779469
http://www.ruanyifeng.com/blog/2011/02/seven_myths_about_https.html
http://www.jianshu.com/p/54dd21c50f21