Skip to content

fpcheck v0.2.0

Latest

Choose a tag to compare

@North-web-dev North-web-dev released this 25 Oct 15:15
· 7 commits to main since this release

fpcheck reports a client's JA3, JA4, JA4H and Akamai HTTP/2 fingerprints by terminating TLS itself and parsing the raw ClientHello and HTTP/2 frames — then diffs them against a bundled reference browser. Run it yourself as a scriptable, self-hostable alternative to closed SaaS fingerprint testers.

Highlights

  • Turnkey self-hosting. New Dockerfile (distroless, static binary), docker-compose.yml, and a one-liner quickstart. A release workflow publishes the image to ghcr.io/north-web-dev/fpcheck on each tag.
  • Host it on a domain. New optional serve --cert/--key flags serve a real certificate; the README documents the TCP/SNI-passthrough reverse-proxy setup (fpcheck must terminate TLS itself — a TLS-terminating HTTP proxy would fingerprint the proxy, not the visitor).
  • HTTP/2 shutdown fix. The server now sends a GOAWAY frame after each response, so clients see a clean shutdown instead of a truncated connection (previously curl --http2 returned exit 56 and fpcheck run failed even though the body arrived). Covered by a new regression test.
  • README polish. One-line definitions of each fingerprint, a Docker quickstart, and real captured sample responses from curl --http2 and from Chrome 151 (showing GREASE preserved and JA4 stable where JA3 is not).

Verify

docker build -t fpcheck . && docker run --rm -p 8443:8443 fpcheck
curl -sk --http2 https://127.0.0.1:8443/api/all

Build + go vet + go test ./... -race all green.

Full changelog: v0.1.0...v0.2.0