compress_certificate

TLS Extension Code: 27

Extension Details

Extension Name
compress_certificate
Extension Code (Decimal)
27
Extension Code (Hex)
0x001B
RFC Reference

What is compress_certificate?

The Compress Certificate extension allows TLS certificate chains to be compressed using algorithms like Brotli, Zstandard, or zlib. Certificate chains can be large (4-8KB), and compression can reduce them by 50-70%, significantly improving connection time, especially on mobile networks. The client advertises supported compression algorithms, and the server responds with a compressed certificate if supported. This extension is defined in RFC 8879 and is particularly beneficial for websites with large certificate chains (multiple intermediates, OCSP stapling).

Role in JA3 Fingerprinting

How This Extension Affects Fingerprinting

The compress_certificate extension is part of the TLS Client Hello packet that JA3 analyzes to create a unique fingerprint of your browser or HTTP client.

JA3 Construction: JA3 concatenates TLS parameters including extensions in a specific format:
TLS_VERSION,CIPHERS,EXTENSIONS,CURVES,POINT_FORMATS

Different browsers and HTTP clients support different sets of TLS extensions, making this a key differentiator in fingerprinting. The presence, absence, or order of extensions like compress_certificate can reveal:

  • Browser type and version (Chrome, Firefox, Safari, Edge)
  • Operating system (Windows, macOS, Linux, Android, iOS)
  • HTTP library (curl, Python requests, Go http.Client, Node.js)
  • Bot detection - automated tools often have distinctive extension sets

Test Your TLS Configuration

See if your browser or HTTP client includes the compress_certificate extension in its TLS handshake:

The JA3 tool will show all TLS extensions your client advertises, including compress_certificate.

Browser & Client Support

Modern Browser Support:

  • Chrome/Edge: Full support for compress_certificate
  • Firefox: Full support for compress_certificate
  • Safari: Full support for compress_certificate

HTTP Client Libraries:

  • curl: Support varies by OpenSSL/LibreSSL version
  • Python requests: Limited TLS extension control
  • curl_cffi: Can mimic browser TLS configurations
  • Scrapfly API: Automatically matches real browser TLS fingerprints

Technical References