Customizing TLS (JA3) Fingerprints through HTTP Proxy
git clone https://github.com/lylemi/ja3proxy
cd ja3proxy
make
./ja3proxy -port 8080 -client 360Browser -version 7.5
curl -v -k --proxy http://localhost:8080 https://www.example.com
docker run \
-v ./credentials:/app/credentials \
-p 8080:8080 \
ghcr.io/lylemi/ja3proxy:latest \
-cert /app/credentials/cert.pem \
-key /app/credentials/key.pem \
-client 360Browser \
-version 7.5
See compose.yaml
docker compose up -d
Usage of ja3proxy:
-addr string
proxy listen host
-port string
proxy listen port (default "8080")
-cert string
proxy tls cert (default "cert.pem")
-key string
proxy tls key (default "key.pem")
-client string
utls client (default "Golang")
-version string
utls client version (default "0")
-upstream string
upstream proxy, e.g. 127.0.0.1:1080, socks5 only
-debug
enable debug
for full list, see: https://github.com/refraction-networking/utls/blob/master/u_common.go
Client | Version |
---|---|
Golang | 0 |
Firefox | 55 |
Firefox | 56 |
Firefox | 63 |
Firefox | 99 |
Firefox | 105 |
Chrome | 58 |
Chrome | 62 |
Chrome | 70 |
Chrome | 96 |
Chrome | 102 |
Chrome | 106 |
iOS | 12.1 |
iOS | 13 |
iOS | 14 |
Android | 11 |
Edge | 85 |
Edge | 106 |
Safari | 16.0 |
360Browser | 7.5 |
QQBrowser | 11.1 |
If you have any ideas or suggestions, please feel free to submit a pull request. We appreciate any contributions.
If you have any questions or suggestions, please feel free to contact us.