JA3Proxy logo

JA3Proxy Lyle

Use this command to install JA3Proxy:
winget install --id=LyleMi.JA3Proxy -e

Customizing TLS (JA3) Fingerprints through HTTP Proxy

JA3Proxy is a tool designed to customize TLS (JA3) fingerprints through an HTTP proxy. It allows users to modify their TLS client fingerprint by selecting predefined or custom configurations, enabling enhanced privacy, testing, and research capabilities.

Key Features:

  • Supports predefined clients and versions for popular browsers and frameworks (e.g., Firefox, Chrome, Safari, Edge).
  • Allows customization of TLS fingerprints to simulate different browsers or versions.
  • Configurable to use upstream proxies for chaining connections.
  • Flexible configuration options for certificates and keys.
  • Easy integration via command-line interface or Docker container.

Audience & Benefit: Ideal for developers, cybersecurity professionals, privacy advocates, and researchers who need to test web applications' fingerprinting mechanisms, bypass geolocation restrictions, or enhance privacy by masking browser identification. JA3Proxy provides a robust solution for TLS fingerprint manipulation, enabling users to control how their connections are perceived online.

JA3Proxy can be installed via winget for easy setup on Windows systems.

README

JA3Proxy

Customizing TLS (JA3) Fingerprints through HTTP Proxy

Usage

Building from source

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

Using docker CLI

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

Using docker compose

See compose.yaml

docker compose up -d

CLI usage

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

Perdefined clients and versions

> for full list, see: https://github.com/refraction-networking/utls/blob/master/u_common.go

ClientVersion
Golang0
Firefox55
Firefox56
Firefox63
Firefox99
Firefox105
Chrome58
Chrome62
Chrome70
Chrome96
Chrome102
Chrome106
iOS12.1
iOS13
iOS14
Android11
Edge85
Edge106
Safari16.0
360Browser7.5
QQBrowser11.1

Contribution

If you have any ideas or suggestions, please feel free to submit a pull request. We appreciate any contributions.

Contact

If you have any questions or suggestions, please feel free to contact us.

Versions
0.4
0.3
Website
License