TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
A TLS 1.2 cipher suite with ECDHE, AES-256-CBC and HMAC-SHA384. Common in OpenSSL defaults, absent from browsers.
What it is
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (code 0xC028) is a TLS 1.2 cipher suite from RFC 5289. It combines ephemeral elliptic curve Diffie-Hellman, an RSA certificate, AES-256 in CBC mode and HMAC-SHA384 for record integrity, with SHA-384 also used by the PRF.
It is the 256-bit partner of TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256. A stronger hash and key do not change how CBC works in TLS 1.2, so it is still exposed to the same class of padding oracle problems unless encrypt_then_mac is negotiated, which RFC 9325 asks for before using any CBC suite.
Its natural replacement is TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, which every client that offers this suite also offers.
The SHA384 in its name refers both to the HMAC used on each record and to the hash used by the TLS 1.2 PRF, which differs from the GCM suites, where the hash only drives the PRF.
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
Python requests, httpx, Node.js fetch, Guzzle and both curl builds offer it, while Chrome, curl_cffi, curl-impersonate and Go net/http do not. Positions: 9th for macOS curl, 11th for Python requests, httpx and Node.js fetch, and 14th for Debian curl and Guzzle.
Check whether your client sends it
Open the test from your browser, or call it from your script, and look for TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 in the TLS details.
Run the TLS fingerprint test