V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
mekingname
V2EX  ›  Go 编程语言

Golang 有没有同时支持 HTTP2、TLS、JA3 指纹的 HTTP 客户端?

  •  
  •   mekingname ·
    kingname · 2021-08-17 16:50:29 +08:00 · 1751 次点击
    这是一个创建于 1229 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前,https://github.com/CUCyber/ja3transport 可以解决 TLS 、JA3 指纹,但是它不支持 HTTP2

    net/http 支持 HTTP2,但是配置 JA3 很麻烦。

    5 条回复    2021-08-17 18:01:04 +08:00
    Mitt
        1
    Mitt  
       2021-08-17 17:01:47 +08:00
    看了一下 ja3transport 的设计挺标准的啊,你用标准库把 transport 换成 ja3transport 的不就好了,它自己的 JA3Client 也是这么干的啊
    mekingname
        2
    mekingname  
    OP
       2021-08-17 17:12:07 +08:00
    @Mitt 我已经试过了。导致它不支持 http2 的原因就是 ja3transport. 即使直接使用 net/http,只要换上了它的 ja3transport,立马就失去访问 http2 的能力了。

    原因是 ja3transport 在 Transport 里面设置的 Dial,导致 net/http 发现这个字段被设置了,自动强制使用 http1.1
    Mitt
        3
    Mitt  
       2021-08-17 17:42:18 +08:00
    @mekingname #2 确实,有没有试过 ForceAttemptHTTP2 这个配置
    mekingname
        4
    mekingname  
    OP
       2021-08-17 17:56:58 +08:00
    @Mitt 没有。这个配置写到哪里
    Mitt
        5
    Mitt  
       2021-08-17 18:01:04 +08:00
    @mekingname #4 Transport,在 NewTransport 之后对返回的 transport 修改一下就行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2750 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:45 · PVG 20:45 · LAX 04:45 · JFK 07:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.