如何在节点的 Websocket 连接中获取模仿主流浏览器的 TLS/JA3 指纹?我可以通过修改节点的 TLS 配置来实现此目的,还是需要更复杂的东西? 我已经尝试使用 node.JS 的 ws 库将打乱的密码作为选项之一与标头一起传递,但这还不足以达到预期的效果。
一些库允许单个 HTTP 请求,例如这个是用go语言写的,但是我需要一个开放的websocket连接。
JA3 指纹基于密码和顺序以及各种 TLS 扩展和顺序。虽然密码和顺序可以更改,但无法从节点访问 TLS 扩展顺序等功能 - 我认为甚至没有 OpenSSL API(OpenSSL 是底层节点的 TLS 库)。这意味着无法从节点模拟特定的 JA3 指纹。
您可以使用curl-impersonate项目来替换底层的libcurl,它模仿浏览器的tls和http2指纹。