TLS Cipher-Suite Simulator
See which TLS version, cipher and group browsers, Android, Java and OpenSSL get from your server.
Try an example: Mozilla intermediate against all clients · Mozilla modern (TLS 1.3 only) · Mozilla old with RSA certificate · Custom OpenSSL list without ECDHE, server order
How it works
Pick a Mozilla server preset (modern, intermediate, old) or paste your own cipher list in OpenSSL or IANA names, and see what 34 recorded clients (browsers, Android, Java, OpenSSL, plus curl) would negotiate: protocol version, cipher suite, key-exchange group, signature algorithm, forward secrecy and AEAD, or why the handshake fails. Includes an IANA ↔ OpenSSL name table and a configuration grade. Offline simulation from documented data, no connection is made.
- Client data: the ClientHello bytes SSL Labs records for its handshake simulation (cipher suites in order, supported_versions, supported_groups, key_share, signature_algorithms), decoded by our own parser, plus SSL Labs’ DH-size limits. GREASE values and pre-standard TLS 1.3 draft versions (e.g. the draft-28 version sent by Firefox 62) are ignored. curl profiles reuse the default hello of the OpenSSL version curl is linked against (an approximation: curl distributions may set their own cipher lists).
- Server data: Mozilla Server Side TLS guidelines 6.0 (modern, intermediate) and 5.7 (old, removed from 6.0): protocols, cipher suites, TLS 1.3 suites, curves, certificate types and DH size. Custom lists accept OpenSSL names, IANA names or hex codes.
- Negotiation follows OpenSSL server behaviour: the highest common protocol version wins; TLS 1.3 chooses a shared suite and group (a missing key share costs a HelloRetryRequest) and needs ecdsa_secp256r1_sha256 or rsa_pss_rsae_* signatures. TLS ≤ 1.2 picks the first shared suite in client order (or server order if enabled) whose authentication matches the certificate and whose key exchange is possible (ECDHE needs a shared curve). Clients that reject large or small DH groups fail like they do in reality.
- Grade: our own simple scale (A+ to F), not the SSL Labs rating: SSL 3.0, RC4, export, NULL, anonymous or DES suites → F; 3DES → C; TLS 1.0/1.1 or static RSA → B; CBC suites → A-; no TLS 1.3 → A.
- Limitations: no real network connection is made; extensions such as ALPN, session resumption, OCSP stapling, Encrypted Client Hello and certificate chain validation are not simulated; client behaviour can differ by OS build and configuration.
Simulation from recorded and documented data. Test your real server with a live scanner before relying on it.
Sources
- Mozilla Server Side TLS guidelines (JSON 6.0) (Mozilla) retrieved 2026-10-18
- Mozilla Server Side TLS guidelines (JSON 5.7, "old" profile) (Mozilla) retrieved 2026-10-18
- Security/Server Side TLS (Mozilla)
- TLS Cipher Suites and Supported Groups registries (IANA) retrieved 2026-10-18
- SSL Labs API: handshake simulation clients (getClients) (Qualys SSL Labs) retrieved 2026-10-18
- RFC 8996: Deprecating TLS 1.0 and TLS 1.1
For scripts and AI agents
- JSON API:
POST https://tlsciphersuitesimulator.usefulweb.site/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://tlsciphersuitesimulator.usefulweb.site/mcp· tool nametls_cipher_suite_simulator
Example request
curl -s -X POST https://tlsciphersuitesimulator.usefulweb.site/api/v1/calculate \
-H 'content-type: application/json' \
-d '{"serverPreset":"intermediate"}'Related tools
- X.509 / ASN.1 Certificate Inspector – Decode X.509 certificates, chains and CSRs: SANs, usages, CT SCTs, chain order and an ASN.1 tree.
- DNS + Certificate Explorer – DNS records, e-mail security, CAA, live TLS certificate and CT history for a domain.