compress_certificate
compress_certificate lets the server send its certificate chain compressed. Chrome and recent OpenSSL clients send it.
What it is
compress_certificate (extension 27) is defined in RFC 8879 for TLS 1.3. The client lists the compression algorithms it accepts, such as zlib, Brotli or Zstandard, and the server may then send its certificate chain compressed.
Certificate chains are often several kilobytes and make up most of a TLS 1.3 handshake. Compressing them saves bandwidth and can keep the server's first flight inside the TCP initial window, which avoids an extra round trip. The gain is larger now that post-quantum key shares make handshakes bigger.
In our measurements both Chrome and recent OpenSSL-based clients offer it.
The server is free to ignore the extension and send the chain uncompressed, so offering it never breaks a handshake. It applies only to TLS 1.3, because it relies on the TLS 1.3 handshake message layout.
Who sends it
Measured on 2026-10-25 against our own test server: sent by 7 of 12 clients. Position counts from 1 and ignores GREASE values.
Why it matters for fingerprinting
In our measurements it is sent by Chrome, curl_cffi, curl-impersonate chrome116, Python requests, httpx and Guzzle. curl on macOS and Debian, Go net/http, Node.js fetch and the Firefox profile of curl-impersonate do not send it. Which compression algorithms are listed differs between Chrome and OpenSSL, but our test shows only the extension itself.
Check whether your client sends it
Open the test from your browser, or call it from your script, and look for compress_certificate in the TLS details.
Run the TLS fingerprint test