- Easy setup with default proxy agent
- Custom header order
- Custom pseudo-header order
- TLS (Ja3 Token) configuration
- Header order duplicated from your request
proxy-tlswith ja3 token for change your tlsproxy-protocolwithhttporhttpsparameterproxy-downgradeuse http/1.1 for requestproxy-tls-setupset values to emulate asandroidchromeiosfirefoxproxy-node-escaperemove headerConnectionfrom request
default is chrome browser tls, https protocol and http2 / http
Clone repository
$ git clone https://github.com/Kolosok86/http-tls-proxy.gitRun with docker
$ make docker-build && make docker-runBuild and Run
$ make build && ./proxyimport pkg from "https-proxy-agent"
import axios from "axios"
const { HttpsProxyAgent } = pkg
const ja3 =
"771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,10-18-23-11-13-35-27-43-16-5-65281-45-17513-51-0-21,29-23-24,0"
const headers = {
"User-Agent":
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36",
"Content-Type": "application/x-www-form-urlencoded",
"proxy-node-escape": "true", // value is doesn't matter
"proxy-tls": ja3,
}
const response = await axios.get("http://tls.peet.ws/api/all", {
httpAgent: new HttpsProxyAgent("http://127.0.0.1:3128"),
headers,
})
console.log(ja3 === response.data.tls.ja3)For change header order you can shuffle headers in your request
I advise you to use the http(s) standard library, or the request library. It will be easier for you to set the headers you need there.
Use http scheme in request url, proxy automatically change to https, if you want
httpset headerproxy-protocol
proxy-tlshas priorityproxy-tls-setup, set only one of this parameters