前言:
现时各位老铁们对“java抓包https”都比较重视,你们都需要知道一些“java抓包https”的相关知识。那么小编也在网摘上汇集了一些对于“java抓包https””的相关资讯,希望同学们能喜欢,同学们一起来了解一下吧!由于https 使用了 TLS/SSL 加密条件,我们无法直接在wireshark的中读取到数据内容,我们先看一下正常的http包的内容。
可以直接读取到http的header 和body。
但如果是https 则不行,显示的是加密的串,可以看到使用的TLS 1.2 。
为了解开这个加密的串,我们需要获得 TLS 握手后的对称秘钥。
如果是通过浏览器打开网站的话,我们需要设置环境变量。
export SSLKEYLOGFILE=~/.ssl-key.log
如果是通过代码请求,比如Go 语言发送https 请求,可以指定 KeyLog 文件。
func main() { f, err := os.OpenFile("keylog.txt", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0664) if err != nil { log.Fatal(err) } client := http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{ KeyLogWriter: f, InsecureSkipVerify: true, }, }, } _, err = client.Get(";) if err != nil { log.Fatal(err) }}
当请求发出后,便可以通过wireshark SSL 中配置这个秘钥文件解析加密的body。
如果是新版的wireshark则是配置 TLS。这点需要注意。
解析的效果如下:
标签: #java抓包https #wireshark 解析https