- Easy setup with default proxy agent
- Custom header order
- Custom pseudo-header order
- TLS (Ja3 Token) configuration
- Header order duplicated from your request
proxy-tls
with ja3 token for change your tlsproxy-protocol
withhttp
orhttps
parameterproxy-downgrade
use http/1.1 for requestproxy-tls-setup
set values to emulate asandroid
chrome
ios
firefox
proxy-node-escape
remove headerConnection
from request
default is chrome browser tls, https protocol and http2 / http
Clone repository
$ git clone https://github.com/Kolosok86/http-tls-proxy.git
Run with docker
$ make docker-build && make docker-run
Build and Run
$ make build && ./proxy
import 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
http
set headerproxy-protocol
proxy-tls
has priorityproxy-tls-setup
, set only one of this parameters